Skip to content

m1k3 CLI: findings from the first critical test (connect claude ignores --config-dir · silent 20 s wake · --port in free text · JSONC message) #380

Description

@kpmmmurphy

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.

  1. 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.)
  2. 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.)
  3. --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.
  4. 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".
  5. 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".
  6. 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).

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions