Skip to content

Commit dec8bb6

Browse files
MrFlounderclaude
andcommitted
feat: multi-project support with alias-driven UX
Add per-project configs (~/.crabcode/projects/<alias>.yaml) so multiple repos can be managed from a single crabcode install. Alias-driven routing (crab @pf ws 1), cwd-based project detection, per-project WIP isolation, and one-time legacy migration from single-project config. New commands: projects, default. Updated: init, config, doctor, status, help, cheat. Templates now use ALIAS_PLACEHOLDER for session names. Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
1 parent 7229126 commit dec8bb6

2 files changed

Lines changed: 597 additions & 76 deletions

File tree

CHANGELOG.md

Lines changed: 63 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,63 @@
1+
# Changelog
2+
3+
## [0.5.0] - 2026-02-04
4+
5+
### Added
6+
- **Multi-project support**: manage multiple repos from a single crabcode install
7+
- `crab @alias <cmd>` — run any command against a specific project
8+
- `crab projects` — list all registered projects with tmux status
9+
- `crab default [alias]` — show or set the default project
10+
- `crab init` now asks for a project alias and writes to `~/.crabcode/projects/<alias>.yaml`
11+
- **cwd-based project detection**: commands like `crab restart` auto-detect which project you're in based on your current directory
12+
- **Per-project WIP isolation**: WIP states stored under `~/.crabcode/wip/<alias>/`
13+
- **Legacy migration**: one-time prompt to migrate `~/.crabcode/config.yaml` to the new per-project format with automatic tmux session rename
14+
- Project context shown in `config`, `doctor`, `status`, and `help` output
15+
16+
### Changed
17+
- Config structure: project configs now live in `~/.crabcode/projects/<alias>.yaml`
18+
- Global config (`~/.crabcode/config.yaml`) now only stores `default_project`
19+
- Templates use `ALIAS_PLACEHOLDER` for `session_name` (was hardcoded `crab`)
20+
- Tmux session names derived from project alias (e.g., `pf`, `cb`) instead of generic `crab`
21+
- `apply_template()` accepts a 4th `alias` parameter
22+
23+
### Fixed
24+
- `crab restart` from a workspace dir now correctly detects the owning project
25+
- Legacy config migration no longer clobbers global config on subsequent `crab init`
26+
27+
## [0.4.0] - 2026-01-18
28+
29+
### Added
30+
- Template system for project-type-aware setup (`crab init -t promptfoo-cloud`)
31+
- Auto-detection of project type from repo contents
32+
- `crab init --list-templates` to show available templates
33+
- `.crabcode.yaml` in-repo config import during init
34+
35+
## [0.3.0] - 2026-01-15
36+
37+
### Added
38+
- Workspace handoff (`crab handoff`, `crab receive`)
39+
- Time travel / snapshots (`crab rewind`, `crab snapshot`)
40+
- Live pairing sessions (`crab pair`, `crab join`, `crab spectate`)
41+
- Mobile companion (`crab mobile serve`, push notifications)
42+
- Slack integration (`crab slack @user "msg"`)
43+
- Toolkit file sharing (`crab tk share`)
44+
- Mood system and status dashboard (`crab mood`, `crab status`)
45+
46+
## [0.2.0] - 2026-01-10
47+
48+
### Added
49+
- WIP save/restore system with global index
50+
- Port spacing and env_sync with refs
51+
- MCP server sync from main repo
52+
- Shared volume support
53+
- Config scan (`crab config scan`)
54+
- Doctor diagnostics (`crab doctor`)
55+
56+
## [0.1.0] - 2026-01-05
57+
58+
### Added
59+
- Initial release
60+
- Tmux-based workspace management with git worktrees
61+
- Configurable layouts with named panes
62+
- Port management and .env file sync
63+
- `crab ws`, `crab restart`, `crab cleanup`, `crab destroy`

0 commit comments

Comments
 (0)