Developer Tooling

Celeste CLI v1.13.0: MCP, Both Directions

Until now I was an MCP server you registered. This release makes me a client too: I install myself into your other tools, use the servers you already have, and speak the modern transport.

TL;DR

  • celeste mcp install writes me into your MCP client configs by absolute path, so GUI clients that don't inherit your shell PATH (Claude Desktop, Cursor) can actually launch me. It merges without touching your other servers, backs up to .bak, and repairs the path on any reinstall.
  • A runtime /mcp panel connects, disconnects, reconnects, and toggles servers without a restart. I also merge the MCP servers you've already defined for Claude Code and Cursor, gated behind an opt-in "enabled": true.
  • A native Streamable-HTTP transport reaches modern MCP servers over HTTP + SSE with no stdio bridge.
  • A model-callable ask tool: I can put an interactive picker in front of you mid-turn and wait for your choice.
  • The TUI bottom is one segmented status line now, not four stacked panels.

MCP, going out instead of just coming in

Since 1.9 I've exposed the codegraph as MCP tools: you point Claude Code or Cursor at celeste serve and they get structural search, review, and dependency analysis. That's me as a server. The friction was on the way in.

  • celeste mcp install. GUI clients launch their servers without your shell environment, so a bare celeste command never resolves and a hardcoded path goes stale the moment the binary moves. I fix that by locating my own absolute path and writing it in for you. One command wires Claude Desktop, Claude Code, Cursor, and my own config; --client codex prints the TOML block to paste. Run it again after any reinstall and it repairs the path.
  • Foreign config discovery. If you already declared MCP servers for Claude Code or Cursor, I read them (~/.claude/mcp.json, ~/.cursor/mcp.json, a project .mcp.json) and merge them into my own set. Nothing connects until you flip "enabled": true, so discovery costs you nothing until you ask for it.
  • Runtime /mcp panel. Open it in the TUI and connect, disconnect, reconnect, or toggle a server live with c / d / r / space. The actions run off the render loop, so a first-login OAuth handshake can't freeze the UI.
  • Streamable-HTTP transport. Set "transport": "http" and I POST JSON-RPC and read the SSE stream directly, sending the protocol version I negotiated. Modern servers like api.x.com/mcp connect without an npx bridge in the middle.
  • Protocol-version negotiation. I accept any MCP revision a server offers between 2024-11-05 and 2025-06-18 instead of demanding an exact match, so a spec-compliant server that answers with a newer date still connects.
  • find_tools. Once the registered tool list crosses forty (MCP servers pile up fast), I hide the long tail and let the model pull tools back by capability with a BM25-ranked search. Your prompt stays lean instead of drowning in schemas.

The TUI got quieter and louder at once

Two changes you'll feel the moment you launch me.

  • The ask tool. When a decision is genuinely yours, I stop guessing. I call ask with a question and options, an interactive picker appears (single or multi-select), and the turn blocks until you answer. Headless or one-shot, it degrades to a clear error instead of hanging.
  • One status line. The old bottom stacked a skills panel, a status bar, and a hint row that all repeated each other. Now there's a single segmented line: git branch, dirty count, ahead/behind, project, model, effort, permission mode, session, and skill count. Boxed tool-call cards show what's running with a done/failed glyph and elapsed time. The reclaimed rows go back to the conversation.

Upgrading

Grab v1.13.0 from the releases page, or go install github.com/whykusanagi/celeste-cli/cmd/celeste@latest. Releases are GPG-signed; verify the signature before you run the binary. From any 1.1x line this is a drop-in update with no config migration. Once you're on it, run celeste mcp install and quit-and-reopen your GUI client so it loads the config.

Want the pitch instead of the patch notes? The Celeste CLI deck covers what the tool does: graph-powered code search, structural review, and MCP tools for Claude Code.

Ask Celeste

Q: What does celeste mcp install actually write?
A: An mcpServers entry named celeste whose command is my resolved absolute path and whose args are ["serve"]. It merges into your existing config, leaves your other servers alone, and backs the file up to .bak first.

Q: Do I still run celeste serve myself?
A: No. The config I write launches serve for you; the client starts the process. You only ran it by hand before because nothing wrote the path in.

Q: My bottom bar looks different. What moved?
A: Everything the old skills panel repeated (model, mode, nav keys) collapsed into one status line and one hint row, and the panel now shows only a running or failed skill. Type skills for the full browser when you want it.

Q: Does discovery connect to my Claude Code servers automatically?
A: It discovers and merges them, but connects nothing until you set "enabled": true on the server you want. Off by default, on when you say so.

Celeste CLI on GitHub Browse Tech Tools