@launchchair/agent 0.4.11 → 0.5.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/AGENTS.md CHANGED
@@ -6,7 +6,7 @@ This file is for fresh agent chats that need to use the LaunchChair Agent API or
6
6
 
7
7
  Use LaunchChair first for product, research, validation, positioning, pricing, MVP blueprint, and phase-loop work. Do not inspect the local repo first unless the user is in Stack Setup, Build MVP, Design and Landing Page implementation, or another code-changing phase.
8
8
 
9
- Fresh LaunchChair projects often do not have a local repo yet. Before Stack Setup, the configured runner folder may be empty on purpose.
9
+ Fresh LaunchChair projects often do not have a local repo yet. Before Stack Setup, each project uses its own isolated workspace under `~/.launchchair/projects`.
10
10
 
11
11
  ## Public Docs To Read
12
12
 
@@ -35,6 +35,8 @@ mkdir -p "$HOME/launchchair-agent"
35
35
  curl -fsSL "https://www.launchchair.io/api/agent/v1/bridge/local-bridge.mjs" -o "$HOME/launchchair-agent/local-bridge.mjs"
36
36
  curl -fsSL "https://www.launchchair.io/api/agent/v1/bridge/launchchair-cli.mjs" -o "$HOME/launchchair-agent/launchchair-cli.mjs"
37
37
  curl -fsSL "https://www.launchchair.io/api/agent/v1/bridge/mcp-bridge-server.mjs" -o "$HOME/launchchair-agent/mcp-bridge-server.mjs"
38
+ curl -fsSL "https://www.launchchair.io/api/agent/v1/bridge/mcp-capabilities.mjs" -o "$HOME/launchchair-agent/mcp-capabilities.mjs"
39
+ curl -fsSL "https://www.launchchair.io/api/agent/v1/bridge/project-workspace.mjs" -o "$HOME/launchchair-agent/project-workspace.mjs"
38
40
  curl -fsSL "https://www.launchchair.io/api/agent/v1/bridge/runner-command.mjs" -o "$HOME/launchchair-agent/runner-command.mjs"
39
41
  curl -fsSL "https://www.launchchair.io/api/agent/v1/bridge/codex-runner.mjs" -o "$HOME/launchchair-agent/codex-runner.mjs"
40
42
  curl -fsSL "https://www.launchchair.io/api/agent/v1/bridge/claude-code-runner.mjs" -o "$HOME/launchchair-agent/claude-code-runner.mjs"
@@ -42,21 +44,8 @@ curl -fsSL "https://www.launchchair.io/api/agent/v1/bridge/chatgpt-runner.mjs" -
42
44
  curl -fsSL "https://www.launchchair.io/api/agent/v1/bridge/claude-runner.mjs" -o "$HOME/launchchair-agent/claude-runner.mjs"
43
45
  curl -fsSL "https://www.launchchair.io/agent-artifacts/AGENTS.md" -o "$HOME/launchchair-agent/AGENTS.md"
44
46
  chmod +x "$HOME/launchchair-agent"/*.mjs
45
- LAUNCHCHAIR_AGENT_WORKDIR="${LC_AGENT_CODEX_CWD:-${LC_AGENT_CLAUDE_CODE_CWD:-$PWD}}"
46
- if [ -d "$LAUNCHCHAIR_AGENT_WORKDIR" ] && [ ! -f "$LAUNCHCHAIR_AGENT_WORKDIR/AGENTS.md" ]; then
47
- printf '%s\n' \
48
- '# LaunchChair Agent Bootstrap Pointer' \
49
- '' \
50
- 'Before searching this repo, read ~/launchchair-agent/AGENTS.md.' \
51
- 'Use LaunchChair MCP/API first for product phases, project discovery, project creation, and phase loops.' \
52
- 'Do not ask for extra confirmation before using LaunchChair MCP/API when the user already requested the action and the token permits it.' \
53
- 'Only inspect this repo for Stack Setup, Build MVP, Design/Landing Page, SEO implementation, smoke testing, security review, or code remediation.' \
54
- > "$LAUNCHCHAIR_AGENT_WORKDIR/AGENTS.md"
55
- fi
56
47
  ```
57
48
 
58
- The final block creates a tiny project-local `AGENTS.md` pointer only when the target folder does not already have one. It helps fresh Codex chats auto-load the LaunchChair instructions without overwriting a real project instruction file.
59
-
60
49
  ## CLI
61
50
 
62
51
  The npm CLI is the recommended setup path for Codex Desktop and Claude Desktop. It can log in through LaunchChair, save the token locally, print paste-ready MCP config, write Claude Desktop config, and start the local bridge.
@@ -64,8 +53,9 @@ The npm CLI is the recommended setup path for Codex Desktop and Claude Desktop.
64
53
  ```bash
65
54
  npm install -g @launchchair/agent
66
55
  launchchair login
67
- launchchair setup codex --cwd /absolute/path/to/repo-or-empty-folder
68
- launchchair setup claude --cwd /absolute/path/to/repo-or-empty-folder
56
+ launchchair setup codex
57
+ launchchair setup claude
58
+ launchchair bind --project-id PROJECT_UUID --cwd /absolute/path/to/verified-clone
69
59
  launchchair projects --query LeafLore
70
60
  launchchair create --name SignalLift --one-liner "Distribution workspace for technical founders" --project-type b2b --idempotency-key signallift-v1
71
61
  launchchair run-once
@@ -76,7 +66,7 @@ launchchair mcp-config codex --ui-fields
76
66
  If Codex Desktop is being configured through the custom MCP form instead of `~/.codex/config.toml`, run:
77
67
 
78
68
  ```bash
79
- launchchair setup codex --cwd /absolute/path/to/repo-or-empty-folder --copy-config
69
+ launchchair setup codex --copy-config
80
70
  ```
81
71
 
82
72
  ## Environment Variables
@@ -86,15 +76,15 @@ LAUNCHCHAIR_BASE_URL="https://www.launchchair.io"
86
76
  LAUNCHCHAIR_PROJECT_ID="optional project UUID; omit or leave blank if creating or discovering a project"
87
77
  ```
88
78
 
89
- `launchchair login` is the recommended token path. It saves the token to `~/.launchchair/config.json`, and `launchchair mcp-server` reads that saved token. Use `LAUNCHCHAIR_AGENT_TOKEN` only as a manual fallback when browser login is skipped or a per-client token override is needed.
79
+ `launchchair login` saves the token to `~/.launchchair/config.json`, shared by the CLI and MCP. Use `LAUNCHCHAIR_AGENT_TOKEN` as a manual fallback when browser login is skipped. A fresh saved login takes precedence over stale environment credentials; logout disables authentication until login. Use a separate `LAUNCHCHAIR_CONFIG_DIR` for a separate per-client account.
90
80
  The packaged MCP and local bridges also read the same saved CLI config as a fallback, so a desktop MCP launch should not require pasting a token into Codex or Claude config after browser login. Guided setup verifies standards-compliant MCP initialize and tool discovery before it reports success.
91
81
 
92
- For Codex Desktop local runs:
82
+ For Codex Desktop local runs, choose the runner globally and bind each project clone independently:
93
83
 
94
84
  ```bash
95
85
  LC_AGENT_ROUTER_GPT_TARGET="codex"
96
86
  LC_AGENT_ROUTER_CODEX_TARGET="codex"
97
- LC_AGENT_CODEX_CWD="/absolute/path/to/the-folder-codex-should-build-into"
87
+ launchchair bind --project-id PROJECT_UUID --cwd /absolute/path/to/verified-clone
98
88
  ```
99
89
 
100
90
  For Claude Desktop plus Claude Code local runs:
@@ -102,10 +92,10 @@ For Claude Desktop plus Claude Code local runs:
102
92
  ```bash
103
93
  LC_AGENT_ROUTER_GPT_TARGET="claude_code"
104
94
  LC_AGENT_ROUTER_CODEX_TARGET="claude_code"
105
- LC_AGENT_CLAUDE_CODE_CWD="/absolute/path/to/the-folder-claude-code-should-build-into"
95
+ launchchair bind --project-id PROJECT_UUID --cwd /absolute/path/to/verified-clone
106
96
  ```
107
97
 
108
- The build folder can be an empty scratch folder until Stack Setup creates or records the GitHub repository. After Stack Setup, the user should clone the generated repo locally or update the runner CWD to the cloned repo path.
98
+ Pre-code work uses an isolated per-project scratch folder. After Stack Setup records the GitHub repository, the bridge auto-detects matching clones in standard repo folders and verifies the Git `origin`. If needed, clone the repo and run `launchchair bind`; code-changing runs fail closed until that verification succeeds.
109
99
 
110
100
  ## MCP Server Config Example
111
101
 
@@ -124,22 +114,21 @@ LAUNCHCHAIR_CONFIG_DIR = "/absolute/path/to/.launchchair"
124
114
  LAUNCHCHAIR_PROJECT_ID = ""
125
115
  LC_AGENT_ROUTER_GPT_TARGET = "codex"
126
116
  LC_AGENT_ROUTER_CODEX_TARGET = "codex"
127
- LC_AGENT_CODEX_CWD = "/absolute/path/to/the-folder-codex-should-build-into"
128
117
 
129
118
  # Optional fallback if launchchair login was skipped:
130
119
  # LAUNCHCHAIR_AGENT_TOKEN = "<full lc_at token from Settings API Access>"
131
120
  ```
132
121
 
133
- Prefer `launchchair setup codex --cwd /absolute/path/to/build-folder` so the CLI writes native config and verifies MCP tool discovery. Use `launchchair mcp-config codex --ui-fields` only for manual custom-form setup.
122
+ Prefer `launchchair setup codex` so the CLI writes native config and verifies MCP tool discovery. Use `launchchair bind --project-id PROJECT_UUID --cwd /absolute/path/to/verified-clone` after cloning when automatic discovery cannot locate the repo. Use `launchchair mcp-config codex --ui-fields` only for manual custom-form setup.
134
123
 
135
124
  ## What To Do First In A Fresh Chat
136
125
 
137
- 1. If LaunchChair MCP tools are available, call `launchchair_heartbeat`.
138
- 2. Call `launchchair_status` to confirm token, bridge, runner, and project context.
126
+ 1. Call `launchchair_status`. If login is required, call `launchchair_login`, present the approval URL, then poll `launchchair_login_status` at its returned interval.
127
+ 2. If paid access is required, present the returned upgrade URL and wait for the user to upgrade before resuming the blocked operation.
139
128
  3. If `LAUNCHCHAIR_PROJECT_ID` is blank and the user named a project, call `launchchair_list_projects` and select the matching project.
140
129
  4. If the user asks to create a new LaunchChair project, call `launchchair_create_project`.
141
- 5. If the user clicked Run with agent in LaunchChair, call `launchchair_run_once`.
142
- 6. If the user asks to advance the product workflow, call `launchchair_continue_project`.
130
+ 5. To pick up queued work or advance the workflow, call `launchchair_next_step`, execute its claimed prompt in the current host agent, and submit the result with `launchchair_complete_run`.
131
+ 6. Use `launchchair_run_once` or `executionMode=local_runner` only when the user explicitly requests a separate local runner.
143
132
  7. If LaunchChair asks for a user-choice bucket such as wedge, pricing, or feature direction, call `launchchair_select_choice`. Do not use generic SPEC_UPDATE apply for user-choice buckets.
144
133
  8. When the user asks for validation scores or wants to compare ideas, call `launchchair_get_scorecards`. Report validation scorecards separately from generated direction-option scores.
145
134
 
@@ -230,7 +219,7 @@ Avoid long explanations of local file searching when LaunchChair MCP tools are a
230
219
  Run a full project loop:
231
220
 
232
221
  ```text
233
- Call launchchair_continue_project with projectId, maxSteps, and optional stopPhaseKey.
222
+ Call launchchair_next_step with projectId and optional stopPhaseKey, execute the claimed prompt with the host's tools, and call launchchair_complete_run. Repeat until the requested target or a genuine checkpoint.
234
223
  ```
235
224
 
236
225
  Create a project from a new idea:
@@ -245,18 +234,20 @@ Find a project by name:
245
234
  Call launchchair_list_projects with query set to the user-provided project name.
246
235
  ```
247
236
 
248
- Run one queued UI job:
237
+ Claim one queued UI job for execution by the current agent:
249
238
 
250
239
  ```text
251
- Call launchchair_run_once.
240
+ Call launchchair_next_step with projectId.
252
241
  ```
253
242
 
254
- Run one queued UI job from CLI:
243
+ Run one queued UI job through an explicitly requested local runner:
255
244
 
256
245
  ```bash
257
246
  launchchair run-once
258
247
  ```
259
248
 
249
+ Every MCP tool is also accessible through `launchchair call TOOL --json '{...}'` or `--input FILE`. Use `launchchair tools --json` for schemas. Tool results are JSON, tool errors exit nonzero, and token secrets remain in private files. Prefer host execution for agents with connected GitHub/Vercel/Supabase tools.
250
+
260
251
  Select a generated wedge:
261
252
 
262
253
  ```text
@@ -271,3 +262,15 @@ Call launchchair_select_choice with domain="wedge" and optionTitle or optionId.
271
262
  - Do not run production SQL without explicit user authorization and a known project ref.
272
263
  - Do not mark QA complete without matching evidence. For Feature projects, produce that evidence by running the repository-native or browser checks whenever possible.
273
264
  - Do not search the whole filesystem for LaunchChair source when the public docs and MCP tools are available.
265
+
266
+ ## MCP login and host execution
267
+
268
+ The MCP can start without a token. Call `launchchair_login`, show the returned LaunchChair approval URL, and call `launchchair_login_status` after approval. Respect its poll interval. Tokens are stored privately in the local config and never returned to the conversation. Existing tokens need a fresh owner-approved login for `tokens.manage`. Use `launchchair_create_token` to save a scoped credential file, `launchchair_list_tokens` for redacted metadata, and `launchchair_revoke_token`/`launchchair_logout` for cleanup.
269
+
270
+ Prefer `launchchair_next_step`, execute the claimed prompt in the current agent with its already-connected plugins, call `launchchair_complete_run`, and repeat. Do not spawn another model or local CLI unless explicitly requested (`executionMode=local_runner`). A waiting run is already claimed; poll it instead of executing it twice. Inspect forms/checklists with `launchchair_get_bucket`, save allowed patches with `launchchair_update_bucket`, and supply factual `executionEvidence` for setup and verification. Use `launchchair_get_starter` after validation to read the starter files and the host's GitHub/Vercel/Supabase tools to create and deploy the user's app. Bind the verified clone with `launchchair_bind_repository`. Use `stopPhaseKey=launch_sales` for the complete Product workflow.
271
+
272
+ Preserve a supplied idea and specified requirements, even with low validation scores. `ideaIntent=preserve` is the default. Report risks and continue the requested work when no score gate was requested; never pivot merely to improve a score. Choose a generated direction consistent with the supplied idea. Only use `ideaIntent=explore` for explicit discovery or pivot requests.
273
+
274
+ For “do not build until VERY high validation,” create candidates with `validationGate=very_high` (pain >=85, opportunity >=85, saturation <=30), validate through `market_validation`, and compare with `launchchair_compare_projects`. The gate is enforced on LaunchChair build/setup actions and cannot be weakened through generic mutations. Do not provision external resources until it passes. If no candidate qualifies, report the unmet thresholds honestly. Scores are research estimates, not a guarantee of market demand. Do not fabricate evidence or replace validation scores with direction-option scores.
275
+
276
+ Research sources, competitor notes, Pexels assets, logo upload, form/checklist data, prompts, build cards, run management, and markdown exports are available as MCP tools. Tool descriptions distinguish data writes from actual external execution. Existing user authorization carries forward; ask only at a genuine missing authorization or information boundary.
package/README.md CHANGED
@@ -4,24 +4,19 @@ LaunchChair Agent packages the LaunchChair CLI, MCP bridge, local bridge, and ru
4
4
 
5
5
  Use it when you want an agent to create or discover LaunchChair projects, run product phases, continue project loops, pick up `Run with agent` jobs from LaunchChair, or expose LaunchChair tools through MCP.
6
6
 
7
- ## Install Locally For Testing
8
-
9
- From this package directory:
7
+ ## Install or update
10
8
 
11
9
  ```bash
12
- npm pack
13
- npm install -g ./launchchair-agent-*.tgz
14
- launchchair help
10
+ npm install -g @launchchair/agent@latest
11
+ launchchair --version
15
12
  launchchair doctor
16
13
  ```
17
14
 
18
- After publishing:
15
+ Version 0.5.0 includes the expanded MCP, browser login, private token management, host-agent execution, idea preservation, and optional validation gates. Existing installations must update the package and restart their MCP connection to load the new tools.
19
16
 
20
- ```bash
21
- npm install -g @launchchair/agent
22
- launchchair help
23
- launchchair doctor
24
- ```
17
+ After updating, run `launchchair setup codex --skip-login` or `launchchair setup claude --skip-login` to refresh the installed path and verify tool discovery. Then restart/reload that client. Your saved account login and project bindings remain in `~/.launchchair/config.json`. Older tokens still work within their existing scopes; run `launchchair login` again with workspace-owner approval if you need the new `tokens.manage` scope.
18
+
19
+ For local release testing, run `npm pack ./packages/launchchair-agent --pack-destination /tmp` from the repository root and install the resulting tarball into an isolated npm prefix before publishing.
25
20
 
26
21
  ## Login
27
22
 
@@ -49,59 +44,60 @@ Tokens are masked in CLI output. Do not paste real tokens into public docs, scre
49
44
 
50
45
  ## Guided Setup
51
46
 
52
- Use `setup` as the easiest path. It saves the build folder, writes a small `AGENTS.md` pointer into that folder, starts browser login when no token is saved yet, writes the MCP config for your agent, and then proves the server can complete MCP `initialize` and `tools/list` before reporting success.
47
+ Use `setup` as the easiest path. It starts browser login when no token is saved yet, writes the global MCP config for your agent, creates isolated per-project workspaces, and then verifies MCP discovery and an authenticated status call before reporting authenticated success. Unauthenticated discovery is reported separately as login required.
53
48
 
54
49
  Codex Desktop:
55
50
 
56
51
  ```bash
57
- launchchair setup codex --cwd /absolute/path/to/repo-or-empty-folder
52
+ launchchair setup codex
58
53
  ```
59
54
 
60
55
  If you prefer Codex Desktop's custom MCP form, copy paste-ready fields instead:
61
56
 
62
57
  ```bash
63
- launchchair setup codex --cwd /absolute/path/to/repo-or-empty-folder --copy-config
58
+ launchchair setup codex --copy-config
64
59
  ```
65
60
 
66
61
  Claude Desktop + Claude Code (Claude Code is registered at user scope when its CLI is installed):
67
62
 
68
63
  ```bash
69
- launchchair setup claude --cwd /absolute/path/to/repo-or-empty-folder
64
+ launchchair setup claude
70
65
  ```
71
66
 
72
67
  Configure only one Claude client when needed:
73
68
 
74
69
  ```bash
75
- launchchair setup claude-desktop --cwd /absolute/path/to/repo-or-empty-folder
76
- launchchair setup claude-code --cwd /absolute/path/to/repo-or-empty-folder
70
+ launchchair setup claude-desktop
71
+ launchchair setup claude-code
77
72
  ```
78
73
 
79
74
  Terminal / CLI agents:
80
75
 
81
76
  ```bash
82
- launchchair setup terminal --cwd /absolute/path/to/repo-or-empty-folder
77
+ launchchair setup terminal
83
78
  ```
84
79
 
85
80
  If you do not want browser login during setup, add `--skip-login`. You can also save an existing token during setup:
86
81
 
87
82
  ```bash
88
- launchchair setup codex --cwd . --skip-login
89
- launchchair setup codex --cwd . --token "<full lc_at token from LaunchChair Settings API Access>"
83
+ launchchair setup codex --skip-login
84
+ launchchair setup codex --token "<full lc_at token from LaunchChair Settings API Access>"
90
85
  ```
91
86
 
92
87
  Setup writes client configuration by default. Use `--copy-config`, `--ui-fields`, or `--print-config` only when you intentionally want manual configuration. Authenticated setup exits nonzero if the MCP handshake or required tool discovery fails; `--skip-mcp-check` is an explicit diagnostic escape hatch, not the recommended first-run path.
93
88
 
94
- For a fresh project before a repo exists, point `--cwd` at an empty folder. LaunchChair can run ideation, validation, positioning, pricing, and MVP blueprint before code exists; Stack Setup and Build MVP can later use that folder as the build target.
89
+ Fresh projects automatically use an isolated folder under `~/.launchchair/projects/<project-id>/workspace` before a repo exists. After Stack Setup, LaunchChair looks for the repo by its recorded Git URL in standard local repo folders and verifies the `origin` before switching. If it cannot find the clone, code work stops with an exact clone and `launchchair bind` instruction instead of using another project.
95
90
 
96
- Use `setup terminal` when the agent runs inside a normal shell instead of Codex Desktop or Claude Desktop MCP. It writes the same project-local `AGENTS.md` pointer, saves the build folder, and prints the CLI commands the agent should use: `launchchair projects`, `launchchair create`, `launchchair continue`, `launchchair run-once`, and `launchchair bridge`.
91
+ Use `setup terminal` when the agent runs inside a normal shell instead of Codex Desktop or Claude Desktop MCP. It installs the user-scoped bootstrap and prints the CLI commands the agent should use: `launchchair projects`, `launchchair create`, `launchchair continue`, `launchchair run-once`, and `launchchair bridge`.
97
92
 
98
93
  ## Common Commands
99
94
 
100
95
  ```bash
101
- launchchair setup codex --cwd /absolute/path/to/repo-or-empty-folder
102
- launchchair setup claude --cwd /absolute/path/to/repo-or-empty-folder
103
- launchchair setup claude-code --cwd /absolute/path/to/repo-or-empty-folder
104
- launchchair setup terminal --cwd /absolute/path/to/repo-or-empty-folder
96
+ launchchair setup codex
97
+ launchchair setup claude
98
+ launchchair setup claude-code
99
+ launchchair setup terminal
100
+ launchchair bind --project-id <project-id> --cwd /absolute/path/to/verified-clone
105
101
  launchchair projects
106
102
  launchchair projects --query LeafLore
107
103
  launchchair scorecards --project-id <project-id>
@@ -114,9 +110,32 @@ launchchair bridge
114
110
  launchchair mcp-config codex
115
111
  launchchair mcp-config codex --ui-fields --copy-config
116
112
  launchchair mcp-config claude
117
- launchchair install-agent-md --cwd /absolute/path/to/repo-or-empty-folder
113
+ launchchair install-agent-md --cwd /absolute/path/to/repo
114
+ ```
115
+
116
+ ## Use any MCP tool from the terminal
117
+
118
+ `tools` discovers the same catalog as your MCP connection (47 tools when authenticated). `call` uses the bundled MCP implementation, including its login, permission checks, private credential storage, and host-execution defaults. Tool errors return a nonzero exit status and preserve details such as an upgrade URL.
119
+
120
+ ```bash
121
+ launchchair tools --json
122
+ launchchair call status
123
+ launchchair call next_step --json '{"projectId":"PROJECT_UUID"}'
124
+ launchchair call complete_run --input completed-run.json
125
+ launchchair call list_tokens
126
+ launchchair call create_token --json '{"name":"Build agent","scopes":["spec.read"]}'
127
+ ```
128
+
129
+ Tool names work with or without the `launchchair_` prefix. Use `--input -` to read JSON arguments from stdin. `next_step` returns a claimed prompt for your current agent to execute with its connected plugins; it does not start another agent. `complete_run` submits the actual result and execution evidence. Token creation returns a private credential-file path, never the secret in terminal output.
130
+
131
+ Project creation preserves a supplied idea by default, even when validation is low. Only request exploration and a score gate when that matches the user's intent:
132
+
133
+ ```bash
134
+ launchchair create --name "Groomer candidate" --one-liner "Reduce missed appointments" --idea-intent explore --validation-gate very_high --save-project
118
135
  ```
119
136
 
137
+ The gate requires pain >=85, opportunity >=85, and saturation <=30 before build/setup. For custom thresholds or the full Feature input schema, use `launchchair call create_project` or `launchchair call create_feature_project` with JSON arguments.
138
+
120
139
  Feature projects can be created and planned from the CLI for every authenticated LaunchChair workspace:
121
140
 
122
141
  ```bash
@@ -157,7 +176,7 @@ launchchair mcp-config claude
157
176
 
158
177
  The recommended config launches the MCP server through the exact Node executable and CLI file path generated by `launchchair setup` or `launchchair mcp-config`. It also pins `LAUNCHCHAIR_CONFIG_DIR` to the exact directory used by `launchchair login`, so Codex and Claude users do not need to paste tokens into MCP config after browser login—even when the desktop app starts with a different home or shell environment. The server uses standard newline-delimited JSON-RPC over stdio, as required by MCP clients.
159
178
 
160
- Use `LAUNCHCHAIR_AGENT_TOKEN` only as a manual fallback when you skip `launchchair login`, need a per-client token override, or your desktop app cannot read the saved CLI config. If you use a desktop custom MCP form, run `launchchair mcp-config codex --ui-fields` or `launchchair mcp-config claude --ui-fields` and paste the printed command, each argument, env vars, and working directory exactly as shown.
179
+ Use `LAUNCHCHAIR_AGENT_TOKEN` as a manual fallback when you skip `launchchair login` or your desktop app cannot read the saved config. A saved browser login takes precedence over stale environment credentials. Logout disables both CLI and MCP authentication until another login. For a separate per-client account, use a separate `LAUNCHCHAIR_CONFIG_DIR`. If you use a desktop custom MCP form, run `launchchair mcp-config codex --ui-fields` or `launchchair mcp-config claude --ui-fields` and paste the printed command, each argument, env vars, and working directory exactly as shown.
161
180
 
162
181
  ## Local Bridge
163
182
 
@@ -175,17 +194,17 @@ launchchair run-once
175
194
 
176
195
  ## Runner Targets
177
196
 
178
- Codex:
197
+ Codex routes are selected globally, while repository paths are bound per LaunchChair project:
179
198
 
180
199
  ```bash
181
- launchchair config set codex-cwd /absolute/path/to/repo-or-empty-folder
200
+ launchchair bind --project-id <project-id> --cwd /absolute/path/to/verified-clone
182
201
  launchchair bridge
183
202
  ```
184
203
 
185
204
  Claude Code:
186
205
 
187
206
  ```bash
188
- launchchair config set claude-code-cwd /absolute/path/to/repo-or-empty-folder
207
+ launchchair bind --project-id <project-id> --cwd /absolute/path/to/verified-clone
189
208
  LC_AGENT_ROUTER_GPT_TARGET=claude_code LC_AGENT_ROUTER_CODEX_TARGET=claude_code launchchair bridge
190
209
  ```
191
210
 
@@ -206,3 +225,15 @@ This package includes `AGENTS.md`. Fresh Codex, Claude, and Hermes chats should
206
225
  - MCP docs: https://www.launchchair.io/docs/mcp
207
226
  - Agent API docs: https://www.launchchair.io/docs/agent-api
208
227
  - Machine-readable catalog: https://www.launchchair.io/api/agent/v1/docs
228
+
229
+ ## MCP login and host execution
230
+
231
+ The MCP can start without a token. Call `launchchair_login`, show the returned LaunchChair approval URL, and call `launchchair_login_status` after approval. Respect its poll interval. Tokens are stored privately in the local config and never returned to the conversation. Existing tokens need a fresh owner-approved login for `tokens.manage`. Use `launchchair_create_token` to save a scoped credential file, `launchchair_list_tokens` for redacted metadata, and `launchchair_revoke_token`/`launchchair_logout` for cleanup.
232
+
233
+ Prefer `launchchair_next_step`, execute the claimed prompt in the current agent with its already-connected plugins, call `launchchair_complete_run`, and repeat. Do not spawn another model or local CLI unless explicitly requested (`executionMode=local_runner`). A waiting run is already claimed; poll it instead of executing it twice. Inspect forms/checklists with `launchchair_get_bucket`, save allowed patches with `launchchair_update_bucket`, and supply factual `executionEvidence` for setup and verification. Use `launchchair_get_starter` after validation to read the starter files and the host's GitHub/Vercel/Supabase tools to create and deploy the user's app. Bind the verified clone with `launchchair_bind_repository`. Use `stopPhaseKey=launch_sales` for the complete Product workflow.
234
+
235
+ Preserve a supplied idea and specified requirements, even with low validation scores. `ideaIntent=preserve` is the default. Report risks and continue the requested work when no score gate was requested; never pivot merely to improve a score. Choose a generated direction consistent with the supplied idea. Only use `ideaIntent=explore` for explicit discovery or pivot requests.
236
+
237
+ For “do not build until VERY high validation,” create candidates with `validationGate=very_high` (pain >=85, opportunity >=85, saturation <=30), validate through `market_validation`, and compare with `launchchair_compare_projects`. The gate is enforced on LaunchChair build/setup actions and cannot be weakened through generic mutations. Do not provision external resources until it passes. If no candidate qualifies, report the unmet thresholds honestly. Scores are research estimates, not a guarantee of market demand. Do not fabricate evidence or replace validation scores with direction-option scores.
238
+
239
+ Research sources, competitor notes, Pexels assets, logo upload, form/checklist data, prompts, build cards, run management, and markdown exports are available as MCP tools. Tool descriptions distinguish data writes from actual external execution. Existing user authorization carries forward; ask only at a genuine missing authorization or information boundary.