Local dashboard + MCP observability proxy for project operations.
- Registers local projects (git and non-git).
- Registers remote projects over SSH (
host:path) with the same workspace/session controls. - Supports git worktree-aware session launch for git projects (main, existing worktree, or create new), including remote hosts.
- Stores config in
$APROPOS_HOME(default:~/.apropos). - Scaffolds each project with:
docs/CLAUDE.mdAGENTS.md -> CLAUDE.mdsymlink
- Adds project MCP tools from project-scoped MCP repositories.
- Supports additional MCP catalogs from git repositories (configured per project in-app).
- Custom MCP repositories should be set with a GitHub SSH URL that has push access (for example
git@github.com:org/repo.git). - Repositories are cloned under
$APROPOS_HOME/<project-id>/mcp/<repo-id>(default root:~/.apropos/<project-id>/mcp/<repo-id>). - MCP configuration also supports a local-project mode that launches the setup skill to discover and wire an existing local MCP server without requiring a GitHub URL.
- Custom MCP repositories should be set with a GitHub SSH URL that has push access (for example
- Writes project-specific MCP config files for both:
- Claude Code:
.mcp.json - Codex:
.codex/config.toml
- Claude Code:
- Saves project skills in both formats:
- Codex:
.codex/skills/<skill>/SKILL.md - Claude:
.claude/skills/<skill>/SKILL.md
- Codex:
- Installs default skills on project add (currently:
write automations,setup mcp proxytargeting both Codex and Claude). - Spawns unlimited per-project sessions in
tmuxfor:- shell (
tmux) codexclaude
- shell (
By default, new tmux sessions use tmux/client-managed sizing so they can expand to the full terminal width.
- Override columns with
TMUX_COLS. - Override rows with
TMUX_ROWS. - For remote projects,
tmux/codex/claudesessions are created and attached over SSH on the remote host. - Supports reusable project automations in
.automations/*.json(run from the workspace "Run Automation" button). - Exposes an MCP proxy endpoint with event + alert logging.
- Streams MCP proxy interaction logs in the workspace
LOGSpanel. - Supports optional VCS command mapping config for code-session rules:
- Global:
~/.apropos/plugins/vcs-mappings.json - Plugin repos: any
vcs-mappings.jsoninside~/.apropos/plugins/** - Project override:
<project>/.apropos/vcs-mappings.json
- Global:
Create JSON files in your project at .automations/<name>.json.
Example:
{
"name": "default-workspace",
"sessions": [
{ "kind": "tmux" },
{ "kind": "codex" },
{ "kind": "claude" },
{ "kind": "tmux", "command": "npm run dev" }
]
}sessionsmust contain one or more entries.kindmust be one of:tmux,codex,claude.commandis optional; when omitted, defaults are used (tmuxshell,codex,claude).
npm install
npm run devOpen http://localhost:4311.
APROPOS_HOME(default:~/.apropos)PORT(default:4311)CODEX_MCP_URL(default target for/api/proxy/codex)CLAUDE_MCP_URL(default target for/api/proxy/claude)
GET /api/dashboardPOST /api/projectsPOST /api/projects/:projectId/scaffoldGET /api/projects/:projectId/worktreesPOST /api/projects/:projectId/worktreesPOST /api/projects/:projectId/mcp-toolsPOST /api/projects/:projectId/mcp-tools/setupPOST /api/projects/:projectId/mcp-tools/draft-server-sessionGET /api/projects/:projectId/mcp/repositoriesPOST /api/projects/:projectId/mcp/repositoriesPOST /api/projects/:projectId/mcp/repositories/:repoId/syncPOST /api/workspace/session-sizesPOST /api/projects/:projectId/skillsPOST /api/projects/:projectId/sessionsDELETE /api/sessions/:sessionIdPOST /api/proxy/:targetGET /api/alertsDELETE /api/alerts/:alertId