···11# Mister Morph
2233-Desktop app, CLI, and reusable Go runtime for running local or channel-connected agents.
33+Desktop app, CLI, and reusable Go runtime for AI agents.
4455Other languages: [简体中文](docs/zh-CN/README.md) | [日本語](docs/ja-JP/README.md)
6677-If you just want to try Mister Morph, start with the desktop App from the [GitHub Releases](https://github.com/quailyquaily/mistermorph/releases) page. It bundles the Console UI, starts the local backend for you, and walks you through first-run setup.
77+To try Mister Morph, start with the desktop App from [GitHub Releases](https://github.com/quailyquaily/mistermorph/releases). It includes the Console UI, starts the local backend, and guides first-run setup.
8899## Why Mister Morph
10101111-- 🖥️ App-first onboarding: the desktop App removes the old multi-terminal setup path, but the CLI is still there when you want it.
1212-- 🧩 Reusable Go core: run Mister Morph as a desktop App, CLI, Console backend, or embed it into another Go project.
1313-- 🔀 One backend, multiple entrypoints: desktop App, Console server, CLI, and channel runtimes all build on the same core runtime.
1414-- 🛠️ Practical extension model: built-in tools, `SKILL.md` skills, and Go embedding cover local use, automation, and integration.
1515-- 🔒 Security-minded by design: auth profiles, outbound policy controls, approvals, and redaction are built into the runtime model.
1111+- 🖥️ App-first setup: use the desktop App to get started; use the CLI when you need a server or script.
1212+- 🧩 Reusable Go core: run Mister Morph as an App, CLI, or Console backend, or embed it in your projects.
1313+- 🤝 Connection: [Aqua](https://mistermorph.com/aqua) lets agents talk to each other, so multiple agents can plan and work together.
1414+- 🛠️ Practical extensions: built-in tools, `SKILL.md` skills, and Go embedding cover local use and automation.
1515+- 🔒 Security-minded: auth profiles, outbound policy, approvals, and redaction are built in.
16161717## Quick Start
1818···2222 - macOS: `mistermorph-desktop-darwin-arm64.dmg`
2323 - Linux: `mistermorph-desktop-linux-amd64.AppImage`
2424 - Windows: `mistermorph-desktop-windows-amd64.zip`
2525-2. Launch the App.
2626-3. Complete the setup flow inside the App.
2727-4. Use the Console UI. You do not need to run `mistermorph console serve` manually.
2525+2. Open the App.
2626+3. Use the Agent.
28272928Build, packaging, and platform notes: [docs/app.md](docs/app.md)
30293130### CLI
32313333-Install a CLI binary:
3232+Install the CLI:
34333534```bash
3635curl -fsSL -o /tmp/install-mistermorph.sh https://raw.githubusercontent.com/quailyquaily/mistermorph/refs/heads/master/scripts/install-release.sh
···4342go install github.com/quailyquaily/mistermorph/cmd/mistermorph@latest
4443```
45444646-Bootstrap a workspace, set an API key, and run one task:
4545+Set up a workspace, set an API key, and run one task:
47464847```bash
4948mistermorph install
···5150mistermorph run --task "Hello!"
5251```
53525454-If `config.yaml` does not exist yet, `mistermorph install` launches the setup wizard and writes the initial workspace files for you.
5353+If `config.yaml` is missing, `mistermorph install` starts the setup wizard and writes the first workspace files.
55545655CLI modes and configuration details: [docs/modes.md](docs/modes.md), [docs/configuration.md](docs/configuration.md)
57565858-## What Mister Morph Includes
5757+## What It Includes
59586060-- A desktop App for local use with first-run setup and an embedded Console UI.
6161-- A CLI for one-shot tasks, scripting, automation, and server modes.
6262-- A local Console server for browser-based setup, runtime management, and monitoring.
5959+- A desktop App with first-run setup and the Console UI.
6060+- A CLI for one-shot tasks, scripts, automation, and server modes.
6161+- A local Console server for setup, runtime management, and monitoring.
6362- Channel runtimes for Telegram, Slack, LINE, and Lark.
6464-- A reusable Go integration layer for embedding Mister Morph into other projects.
6363+- A Go integration layer for embedding Mister Morph into other projects.
6564- Built-in tools and a `SKILL.md`-based skills system.
6665- Security controls for auth profiles, outbound policies, approvals, and redaction.
6766···94939594## Development
96959797-Useful local commands:
9696+Useful commands:
98979998```bash
10099./scripts/build-backend.sh --output ./bin/mistermorph
···102101go test ./...
103102```
104103105105-The Console frontend uses `pnpm` under `web/console/`. See [docs/console.md](docs/console.md) and [docs/app.md](docs/app.md) for local build details.
104104+The Console frontend lives in `web/console/` and uses `pnpm`. See [docs/console.md](docs/console.md) and [docs/app.md](docs/app.md) for build details.
106105107106## Configuration Template
108107109109-The canonical config template lives at [assets/config/config.example.yaml](assets/config/config.example.yaml).
110110-Environment variables use the `MISTER_MORPH_` prefix. Full configuration notes and common flags are in [docs/configuration.md](docs/configuration.md).
108108+The canonical config template is [assets/config/config.example.yaml](assets/config/config.example.yaml).
109109+Environment variables use the `MISTER_MORPH_` prefix. Full config notes and common flags are in [docs/configuration.md](docs/configuration.md).
111110112111## Star History
113112
···11# Desktop App
2233-Mister Morph ships a desktop App that wraps the existing Console backend and UI into a single local experience.
33+Mister Morph includes a desktop App that wraps the existing Console backend and UI.
4455## User Quick Start
6677-Download a release asset from the [GitHub Releases](https://github.com/quailyquaily/mistermorph/releases) page:
77+Download a release asset from [GitHub Releases](https://github.com/quailyquaily/mistermorph/releases):
8899- macOS `arm64`: `mistermorph-desktop-darwin-arm64.dmg`
1010- Linux `amd64`: `mistermorph-desktop-linux-amd64.AppImage`
···12121313Then:
14141515-1. launch the App
1616-2. complete the setup flow inside the App
1717-3. let the App start and host the local Console for you
1515+1. open the App
1616+2. finish setup
1717+3. use the local Console
18181919-You do not need to run `mistermorph console serve` manually when using the App.
1919+You do not need to run `mistermorph console serve`.
20202121## Current Shape
22222323-The desktop code lives under `desktop/wails` and is built with `wailsdesktop production`.
2323+The desktop code lives in `desktop/wails` and builds with `wailsdesktop production`.
24242525- the Wails process owns the native window and Go bindings
2626- a child process runs `mistermorph console serve`
2727-- the App routes WebView traffic to that local child process
2727+- the App routes WebView traffic to that child process
28282929-The wrapper stays intentionally thin: lifecycle, process hosting, restart flow, and local proxying only.
2929+The wrapper only handles lifecycle, process management, restart, and proxying.
30303131## Architecture
3232···8080 -> frontend calls App.RestartApp()
8181```
82828383-`App.RestartApp()` starts a new copy of the current desktop executable and then quits the old one.
8383+`App.RestartApp()` starts a new copy of the desktop executable, then quits the old one.
84848585## Paths and Configuration
86868787-- Console frontend assets are embedded in the bundled `mistermorph` backend by default.
8787+- Console assets are embedded in the bundled `mistermorph` backend by default.
8888- You can override static assets with:
8989 - `console.static_dir`
9090 - `--console-static-dir /abs/path/to/dist`
···9898sudo apt-get install -y libgtk-3-dev libwebkit2gtk-4.1-dev
9999```
100100101101-Build the backend binary used by the desktop wrapper:
101101+Build the backend binary:
102102103103```bash
104104./scripts/build-backend.sh --output ./bin/mistermorph
···116116go run -tags 'wailsdesktop production' ./desktop/wails
117117```
118118119119-Build only the desktop wrapper directly:
119119+Build only the desktop wrapper:
120120121121```bash
122122go build -tags 'wailsdesktop production' -o ./bin/mistermorph-desktop ./desktop/wails
···136136- Linux `amd64`: `mistermorph-desktop-linux-amd64.AppImage`
137137- Windows `amd64`: `mistermorph-desktop-windows-amd64.zip`
138138139139-The packaged desktop App includes a sibling `mistermorph` backend binary so the wrapper can start `console serve` locally without a first-run download.
139139+The package includes a sibling `mistermorph` backend binary, so the wrapper can start `console serve` locally without a first-run download.
140140141141-That bundled backend is intentionally built with `CGO_ENABLED=0`. Keep it that way unless there is a deliberate packaging plan to change the constraint.
141141+That backend is built with `CGO_ENABLED=0` on purpose. Keep it that way unless you have a packaging plan to change it.
142142143143## Known Gaps
144144145145- No notarization or codesign flow yet for the macOS DMG.
146146- Windows ships as a zip bundle, not an installer.
147147-- No dedicated UI yet for detailed backend startup failures.
148148-- The desktop wrapper still reuses the CLI backend through child-process orchestration rather than an in-process console module.
147147+- No dedicated UI yet for backend startup failures.
148148+- The wrapper still reuses the CLI backend through child-process orchestration rather than an in-process console module.
+6-6
docs/configuration.md
···11# Configuration
2233-This page collects the configuration details that do not need to live on the top-level README.
33+This page holds the config details moved out of the top-level README.
4455The canonical config template is [../assets/config/config.example.yaml](../assets/config/config.example.yaml).
6677## Sources and Precedence
8899-`mistermorph` uses Viper, so you can configure it with:
99+`mistermorph` uses Viper. You can configure it with:
10101111- CLI flags
1212- environment variables
1313- a config file
14141515-Precedence for config-sourced values is:
1515+Precedence:
16161717`CLI flag > MISTER_MORPH_* env > config.yaml > default`
1818···2424- `.toml`
2525- `.ini`
26262727-Environment variable rules:
2727+Env var rules:
28282929- prefix: `MISTER_MORPH_`
3030- nested keys: replace `.` and `-` with `_`
···137137- `MISTER_MORPH_SLACK_APP_TOKEN`
138138- `MISTER_MORPH_FILE_CACHE_DIR`
139139140140-Provider-specific values follow the same mapping. Examples:
140140+Provider-specific values use the same mapping. Examples:
141141142142- `llm.azure.deployment` -> `MISTER_MORPH_LLM_AZURE_DEPLOYMENT`
143143- `llm.bedrock.model_arn` -> `MISTER_MORPH_LLM_BEDROCK_MODEL_ARN`
···190190- `auth_profiles.<id>.credential.secret` holds the secret value.
191191- Use `${ENV_VAR}` for secret references.
192192193193-If at least one allowlisted auth profile is configured, `bash` still works but `curl` is denied by default. Authenticated HTTP should go through `url_fetch` with an auth profile.
193193+If you configure at least one allowlisted auth profile, `bash` still works but `curl` is denied by default. Use `url_fetch` for authenticated HTTP.
194194195195## Example
196196