From the first critical test of the m1k3 CLI (2026-09-18). The launch trap is fixed separately; these are the findings that survived it. Ranked.
What held up (so nobody re-tests it): usage/parse refusals are clear and exit 1; tool errors exit 3; connect cursor|vscode is idempotent, preserves other servers and unknown keys, writes one pristine .bak, leaves malformed JSON untouched and prints the snippet; codex/zed print and never write; agent-notes --write is idempotent and merges into an existing file; unicode/emoji/chat-template tokens pass through search intact; ask answered inline in 6.4 s; round-trips are 50–75 ms.
connect claude --config-dir DIR ignores DIR and runs claude mcp add -s user … against the real config. The flag reads as isolation (it is for every other client). Refuse the combination, or say it is ignored. (Read from CommandRunner.connect → .shell; deliberately not run.)
- First-run silence. With the MCP server off — the default — a call gets connection-refused, the CLI runs
open on the app (focus jumps) and then polls 40 × 0.5 s without printing anything, before the (good) "its MCP server is off: Settings ▸ Privacy" message. ask prints a "thinking…" line to stderr; the wake path should say "opening M1K3…" the same way. (Read from MCPCallSequence; not fired live — the only working helper on this Mac lives in a different copy of the app than the one running.)
--port N is lifted out of free text, with no escape. m1k3 remember the NAS forwards --port 8080 targets port 8080 and drops the words; if a dev server is listening there, the note is POSTed to it. Pinned as intended in CLICommandTests.portOnlyWhenNumeric, and call was already exempted. Cheapest fix: honour a -- terminator; stricter: for text subcommands, accept --port only before the subcommand.
- JSONC. VS Code's
mcp.json routinely carries comments and trailing commas. The CLI fails closed (exit 3, file byte-identical, snippet printed — correct), but tells the user their valid file "isn't valid JSON". Say "has comments — m1k3 won't rewrite it; paste this".
- Small: a dangling
--port reads "status takes no arguments — didn't expect "--port""; every usage error prints the full 1 KB usage text (noisy for agents — consider the one-liner plus "m1k3 help"); agent-notes --write onto a directory reports Foundation's "The file “AGENTS.md” doesn’t exist".
- Gaps, not bugs: no stdin (
echo … | m1k3 remember -), no m1k3 tools to list what call can reach, no --timeout. The ask job-poll path (> 8 s) is still unexercised by any live test.
From the CLI critical-test session of 2026-09-18 (the launch trap itself is #376).
From the first critical test of the
m1k3CLI (2026-09-18). The launch trap is fixed separately; these are the findings that survived it. Ranked.What held up (so nobody re-tests it): usage/parse refusals are clear and exit 1; tool errors exit 3;
connect cursor|vscodeis idempotent, preserves other servers and unknown keys, writes one pristine.bak, leaves malformed JSON untouched and prints the snippet;codex/zedprint and never write;agent-notes --writeis idempotent and merges into an existing file; unicode/emoji/chat-template tokens pass throughsearchintact;askanswered inline in 6.4 s; round-trips are 50–75 ms.connect claude --config-dir DIRignoresDIRand runsclaude mcp add -s user …against the real config. The flag reads as isolation (it is for every other client). Refuse the combination, or say it is ignored. (Read fromCommandRunner.connect→.shell; deliberately not run.)openon the app (focus jumps) and then polls 40 × 0.5 s without printing anything, before the (good) "its MCP server is off: Settings ▸ Privacy" message.askprints a "thinking…" line to stderr; the wake path should say "opening M1K3…" the same way. (Read fromMCPCallSequence; not fired live — the only working helper on this Mac lives in a different copy of the app than the one running.)--port Nis lifted out of free text, with no escape.m1k3 remember the NAS forwards --port 8080targets port 8080 and drops the words; if a dev server is listening there, the note is POSTed to it. Pinned as intended inCLICommandTests.portOnlyWhenNumeric, andcallwas already exempted. Cheapest fix: honour a--terminator; stricter: for text subcommands, accept--portonly before the subcommand.mcp.jsonroutinely carries comments and trailing commas. The CLI fails closed (exit 3, file byte-identical, snippet printed — correct), but tells the user their valid file "isn't valid JSON". Say "has comments — m1k3 won't rewrite it; paste this".--portreads "status takes no arguments — didn't expect "--port""; every usage error prints the full 1 KB usage text (noisy for agents — consider the one-liner plus "m1k3 help");agent-notes --writeonto a directory reports Foundation's "The file “AGENTS.md” doesn’t exist".echo … | m1k3 remember -), nom1k3 toolsto list whatcallcan reach, no--timeout. Theaskjob-poll path (> 8 s) is still unexercised by any live test.From the CLI critical-test session of 2026-09-18 (the launch trap itself is #376).