CodMate

CodMate is a macOS SwiftUI app for managing CLI AI sessions: browse, search, organize, resume, and review work produced by Codex, Claude Code, and Gemini CLI.
It focuses on speed (incremental indexing + caching), a compact three-column UI, and “ship it” workflows like Project Review (Git Changes) and one-click Resume/New.
Status: macOS 13.5+, Swift 6 toolchain. Universal binary (arm64 + x86_64).
Project status (Archival note)
I plan to archive CodMate after this update. Here is the reasoning that led me to this decision:
- Scope drift with limited new insight: CodMate grew from a simple history viewer into a broader desktop GUI for experience, integration, and workflow consolidation. However, it has not pushed the core exploration of Agents/LLMs as much as I hoped.
- Traditional heavyweight GUI is no longer the right center of gravity: the underlying Agent/LLM ecosystem evolves quickly, and a heavier desktop GUI becomes harder to justify when CLI/TUI approaches can iterate faster with less inertia. What feels more important to me now is a broader HUI (Human Usability Interface) direction: designing interfaces that help humans work effectively with rapidly improving AI systems, rather than anchoring exploration to one traditional app surface.
- Ecosystem already covers part of the gap: Codex and Claude Code now offer VS Code/Zed extensions that share history with their CLI sessions, which increasingly addresses the original problem CodMate set out to solve.
- Model exploration now calls for a different center of gravity: I want to spend more time learning how different model families are best used in practice — not just comparing open or low-cost options, but understanding where each type fits. The community already has strong examples such as
oh-my-openagent, and there are also emerging Generative UI directions such as A2UI that I want to keep watching and learning from. In a time when AI/LLMs are accelerating what can be created through logic alone, I think the human-facing usability layer is becoming more urgent, not less.
- The architecture also boxed the project into macOS: CodMate’s SwiftUI desktop design helped it move quickly at first, but it also constrained the project to one environment. For the next phase, I want more room for cross-platform orchestration and CLI-first experimentation rather than continuing from a macOS-only foundation.
This does not diminish what CodMate achieved. If anything, the recent increase in attention around CodMate makes the tradeoff clearer to me: people are clearly interested in better ways to work with CLI agents, and I still believe interface design around these systems matters deeply. But I no longer think this particular macOS GUI is the best place for me to continue that exploration. The focus shift is toward orchestration, model-specific workflows, HUI, and more portable foundations.
Where this exploration continues
While I will keep many of the ideas behind CodMate in mind, the project I am actively building now is MCPMate.
MCPMate is not a brand-new project. I started shaping it around May last year, paused it around October, and recently returned to it with a clearer view of where MCP has irreplaceable value. It was previously closed-source and is now being reopened in public.
At a high level, MCPMate is a management center for MCP servers and AI clients. The direction I care about most there is usability: building on its earlier profile-based approach for removing redundant capabilities in specific scenarios, and extending its hosted mode toward a more progressively disclosed smart mode. Part of the goal is to bring some of the lower first-token-cost and lower-friction qualities that people appreciated in skills- and CLI-shaped workflows into MCP as well.
So while CodMate is ending here, the broader exploration is not. If CodMate resonated with you, I would love for you to take a look at MCPMate and share feedback.
Download
Why CodMate
- Find anything fast: a global search panel (⌘F) with scoped search + progress/cancel, plus quick list filtering.
- Keep work organized: Projects + Tasks let you group sessions by repo and by goal, with a shareable task context file.
- Continue instantly: Resume/New into Terminal/iTerm2/Warp (or embedded terminal in non-sandbox builds), with copyable exact commands.
- Review & commit without leaving the app: Project Review shows diffs, staging state, and supports commit (with optional AI commit message generation).
Features (organized by value)
Organize and understand sessions across CLIs
- Multi-source session browsing:
- Codex:
~/.codex/sessions (.jsonl)
- Claude Code:
~/.claude/projects (.jsonl)
- Gemini CLI:
~/.gemini/tmp (Gemini’s session storage)
- Sidebar navigation:
- Projects list with counts, including “All” and an unassigned/Other bucket.
- Calendar (pinned bottom) with per-day counts and a Created/Updated toggle.
- Directory-based navigation built from session
cwd statistics.
- Session list:
- Default scope is Today for fast first paint.
- Sorting: Most Recent (created/updated aware), Duration, Activity, etc.
- Rows show title, timestamps/duration, snippet, and compact metrics (user/assistant/tool/reasoning), plus states like running/updating/awaiting follow-up.
Projects + Tasks (workspaces instead of loose logs)
- Projects:
- Create/edit projects (name, directory, overview, trust level, optional runtime profile).
- Assign sessions to projects via row actions/context menus.
- Storage:
~/.codmate/projects/ (project metadata + memberships mapping).
- “New” sessions started inside a project can be auto-assigned to that project.
- Tasks (within projects):
- Create/edit/delete tasks, collapse/expand task groups, and assign/move sessions into tasks.
- Task context sync: generates/updates a shareable context file and prepares a prompt pointing to it.
- Storage:
~/.codmate/tasks/ (task metadata + relationships mapping).
Resume/New (local, remote, embedded)
- Resume:
- Launch in Terminal.app / iTerm2 / Warp, or embedded terminal (non-App Store / non-sandbox builds).
- When embedded is active, CodMate can show a Copy real command action for reproducibility.
- New:
- Start a fresh session from the focused session’s
cwd (and project profile when available).
- Start sessions directly from a selected project, even without a focused session.
- Remote Hosts (SSH mirroring):
- Enable hosts from
~/.ssh/config, then mirror remote sessions over SSH.
- Remote bases:
- Codex remote:
$HOME/.codex/sessions
- Claude remote:
$HOME/.claude/projects
- Mirror cache is stored under
~/Library/Caches/CodMate/remote/.
Search, export, and metadata (make history useful)
- Global Search (⌘F):
- Floating window or toolbar popover style (configurable).
- Scope picker + progress/cancel for long searches.
- Rename/comment:
- Click the session title in the detail pane to edit title/comment.
- Storage:
~/.codmate/notes/<sessionId-sanitized>.json (with automatic migration from legacy locations).
- Conversation export:
- Export Markdown from the detail pane.
- Settings allow choosing which message types appear in the timeline and which are included in Markdown export.
Project Review (Git Changes) + AI commit message generation
- Git Changes surface (Project Review mode):
- Lists changed files, supports stage/unstage, and shows unified diff or raw preview.
- Commit UI with message editor and Commit action.
- Optional AI generate commit message (uses your selected Provider/Model and a prompt template from settings).
- Repo authorization is on-demand (especially relevant in sandboxed builds).
- Settings › Git Review:
- Diff options (line numbers, soft wrap).
- Commit generation: choose Provider/Model and an optional prompt template.
Providers, MCP, notifications, diagnostics (make the ecosystem manageable)
- Providers (Settings › Providers):
- Add/edit providers with Codex + Claude endpoints, shared API key env var, wire API (Chat/Responses), and model catalog with capability flags.
- Built-in templates are bundled from
payload/providers.json; user registry is stored at ~/.codmate/providers.json.
- Built-in health check: Test endpoints before saving.
- MCP Servers (Settings › MCP Server):
- Uni-Import (paste/drag JSON), per-server enable toggle, per-target toggles (Codex/Claude/Gemini), and connectivity Test.
- Storage:
~/.codmate/mcp-servers.json
- Exports enabled servers into
~/.claude/settings.json (and writes a helper file ~/.codmate/mcp-enabled-claude.json).
- Claude Code notifications (Settings › Claude Code › Notifications):
- Installs/removes hooks that forward permission/completion events via
codmate://notify and provides a self-test.
- Dialectics (Settings › Dialectics):
- Deep diagnostics for session roots, notes/projects dirs, environment, and ripgrep indexes.
- One-click “Save Report…” plus rebuild actions for coverage/session index.
Keyboard shortcuts
- ⌘,: Settings
- ⌘F: Global Search
- ⌘R: Refresh (also recomputes global sidebar statistics)
- ⌘1: Toggle sidebar
- ⌘2: Toggle session list
Data locations (quick reference)
- Codex sessions:
~/.codex/sessions
- Claude sessions:
~/.claude/projects
- Gemini sessions:
~/.gemini/tmp
- Notes:
~/.codmate/notes/
- Projects:
~/.codmate/projects/
- Tasks:
~/.codmate/tasks/
- Providers registry:
~/.codmate/providers.json
- MCP servers: `~/.codmate/mcp