Working document for v8.0 UX-focused improvements.
Problem: It's difficult to know which repository is currently active in CKB, especially:
- When using MCP with Claude Code or other AI tools
- When switching between multiple projects
- No visual indicator in shell or status output
Current state:
ckb repo whichprints the default repo (but requires separate command)- MCP has
listRepostool but it's not discoverable ckb statusdoesn't show the active repo prominently- No shell integration (PS1/prompt helper)
Proposed solutions:
- Add prominent active repo display to
ckb statusoutput (first line) - Add
CKB_ACTIVE_REPOenvironment variable that MCP server sets - Shell integration:
ckb promptfor PS1/prompt scripts - MCP: Include active repo in every tool response header (or status field)
Problem: Switching repos is awkward:
- Must use
ckb repo use <name>but this only sets the default for future sessions - In MCP sessions, need to call
switchRepotool but not obvious it exists - No fuzzy matching for repo names
- No recent repos list
Current state:
- CLI:
ckb repo use <name>,ckb repo default <name> - MCP:
switchRepotool,listRepostool - No quick-switch mechanism
Proposed solutions:
- Add
ckb use <name>as top-level shortcut (not justrepo use) - Fuzzy matching for repo names
-
ckb recentto show recently used repos - MCP: Suggest available repos in getStatus response when no repo active
Problem: ckb status doesn't give a complete picture of what's running:
- Missing: daemon status, MCP sessions, active jobs, watch mode
- Need to run
ckb daemon statusseparately - No way to see all running CKB processes
Current ckb status shows:
- CKB version
- Tier info
- Repo state (branch, commit)
- Backends (SCIP, LSP, Git) - availability and health
- Cache stats
- Index freshness
- Change impact availability
Missing from status:
- Active repository name (should be first line!)
- Daemon running? (PID, port, uptime)
- Any MCP sessions active?
- Watch mode active?
- Active jobs/background tasks
- Available/active tools
Proposed new ckb status output:
CKB v8.0.0
Active: my-project (/Users/lisa/Work/my-project)
Branch: feature/new-api (3 commits ahead)
Services:
daemon running (PID 12345, :9120, uptime 2h)
mcp 2 sessions active
watcher watching (last check 30s ago)
Index:
status fresh (2 minutes ago)
symbols 45,321 in 892 files
tier enhanced (SCIP)
Backends:
scip healthy
lsp 1 server (gopls)
git ready
Cache:
queries 1,234 cached (85% hit rate)
size 2.3 MB
Problem: No easy way to find all running CKB processes:
- Daemon might be running but forgotten
- MCP sessions in different terminals
- Watch processes
Proposed solutions:
-
ckb ps- list all CKB processes (daemon, MCP servers, watchers) - Daemon tracks active MCP sessions via registration
- PID file management for all long-running processes
Problem: Hard to know what MCP tools are available and what they do:
- 58 tools is a lot to remember
- No categorization in MCP response
- No "what can I do?" command
Current state:
- MCP
tools/listreturns all tools with descriptions - No grouping or categorization
- No usage examples in tool descriptions
Proposed solutions:
-
ckb tools- list available tools grouped by category -
ckb tools <name>- detailed help for a specific tool - MCP: Add categories to tool metadata
- MCP:
getHelptool that explains available tools
- Add active repo to
ckb statusfirst line - Add
ckb use <name>top-level shortcut - Add daemon status to
ckb statusoutput
Current ckb status output:
CKB v8.0.0
──────────────────────────────────────────────────────────
Active: ckb (/Users/lisa/Work/Ideas/CodeMCP) (from current directory)
Daemon: running (PID 12345, port 9120, uptime 2h)
◉ Analysis Tier: Standard (SCIP index) [auto-detected]
Available Tools: 22 of 24
...
-
ckb pscommand - list all CKB processes -
ckb toolscommand - MCP tool discovery with categories - MCP session tracking (deferred)
New commands:
ckb ps # List running CKB processes (daemon, etc.)
ckb ps --json # JSON output for scripting
ckb tools # Show preset summary with token estimates
ckb tools core # Show tools in core preset (categorized)
ckb tools search # Show details for searchSymbols tool- MCP session tracking in daemon
- Shell integration (
ckb prompt) ckb recentfor recently used repos
CKB_REPOenvironment variable (explicit override)- Current working directory matches a registered repo
- Default repo from
~/.ckb/repos.json - No active repo (error or prompt to select)
- MCP server registers with daemon on startup (if daemon running)
- Heartbeat every 30s to maintain registration
- Session info: repo, PID, start time, tool call count
cmd/ckb/status.go- main status commandinternal/query/status.go- status queryinternal/daemon/server.go- daemon statusinternal/mcp/server.go- MCP session trackingcmd/ckb/repo.go- repo commands
- Should
ckb statusalways check daemon even if not in daemon mode? - How to handle multiple MCP sessions with different active repos?
- Should we add a TUI mode for status (
ckb status --live)?