|
2 | 2 |
|
3 | 3 | **Keep one portable memory-and-skills layer across coding-agent harnesses, so switching tools doesn't reset how your agent works.** |
4 | 4 |
|
5 | | -A portable `.agent/` folder (memory + skills + protocols) that plugs into Claude Code, Cursor, Windsurf, OpenCode, OpenClaw, Hermes, Pi Coding Agent, Codex, or a DIY Python loop — and keeps its knowledge when you switch. |
| 5 | +A portable `.agent/` folder (memory + skills + protocols) that plugs into Claude Code, Cursor, Windsurf, OpenCode, OpenClaw, Hermes, Pi Coding Agent, Codex, Antigravity, or a DIY Python loop — and keeps its knowledge when you switch. |
6 | 6 |
|
7 | 7 | <p align="center"> |
8 | 8 | <img src="docs/demo.gif" alt="agentic-stack demo" width="880"/> |
@@ -78,16 +78,33 @@ verb-style subcommands (works with both `install.sh` and `install.ps1`): |
78 | 78 | ./install.sh add cursor # add a second adapter (Claude Code + Cursor in same repo) |
79 | 79 | ./install.sh status # one-screen view: which adapters, brain stats |
80 | 80 | ./install.sh doctor # read-only audit; green / yellow / red per adapter |
| 81 | +./install.sh manage # interactive TUI: header pane + menu loop for add/remove/audit |
81 | 82 | ./install.sh remove cursor # confirm prompt + delete; no quarantine, no undo |
82 | 83 | ``` |
83 | 84 |
|
84 | | -Bare `./install.sh` (no arguments) prints the available adapters, or |
85 | | -— on a project that already has an install.json — lists what's still |
86 | | -installable. |
| 85 | +Bare `./install.sh` (no arguments) opens a **multi-select wizard** on |
| 86 | +a fresh project — check every harness you actually use, hit enter, |
| 87 | +each one gets installed. The wizard auto-detects harnesses already on |
| 88 | +disk and pre-checks them. On a project that already has an |
| 89 | +`install.json`, bare `./install.sh` lists what's still installable. |
| 90 | +In non-TTY shells (CI), it prints usage and exits with code 2. |
| 91 | + |
| 92 | +Upgrading from pre-v0.9? Run `./install.sh doctor` first — it |
| 93 | +synthesizes `install.json` from on-disk adapter signals so the new |
| 94 | +backend can track them. Installing on top without migration would |
| 95 | +orphan the prior installs. |
87 | 96 |
|
88 | 97 | ## Onboarding wizard |
89 | 98 |
|
90 | | -After the adapter is installed, a terminal wizard populates |
| 99 | +If you ran bare `./install.sh` (no adapter name), the wizard starts |
| 100 | +with a **multi-select harness step**: it lists all 10 adapters, pre- |
| 101 | +checks any it detects on disk, and installs each one you confirm with |
| 102 | +space + enter. After the install(s), the preferences flow runs. |
| 103 | + |
| 104 | +If you ran `./install.sh <adapter>` directly, only the preferences |
| 105 | +flow runs. |
| 106 | + |
| 107 | +Either way, the preferences step populates |
91 | 108 | `.agent/memory/personal/PREFERENCES.md` — the **first file your AI reads |
92 | 109 | at the start of every session** — and writes a feature-toggle file at |
93 | 110 | `.agent/memory/.features.json`. |
@@ -219,21 +236,32 @@ The index is stored at `.agent/memory/.index/` and gitignored. |
219 | 236 | ├── reject.py |
220 | 237 | └── reopen.py |
221 | 238 |
|
222 | | -adapters/ # one small shim per harness |
223 | | -├── claude-code/ (CLAUDE.md + settings.json hooks) |
| 239 | +adapters/ # one small shim per harness, each with adapter.json manifest |
| 240 | +├── claude-code/ (CLAUDE.md + settings.json hooks — $CLAUDE_PROJECT_DIR wired, closes #18) |
224 | 241 | ├── cursor/ (.cursor/rules/*.mdc) |
225 | 242 | ├── windsurf/ (.windsurfrules) |
226 | 243 | ├── opencode/ (AGENTS.md + opencode.json) |
227 | 244 | ├── openclaw/ (AGENTS.md + system-prompt include; auto-registers per-project agent) |
228 | 245 | ├── hermes/ (AGENTS.md) |
229 | 246 | ├── pi/ (AGENTS.md + .pi/skills symlink) |
230 | | -├── codex/ (AGENTS.md) |
| 247 | +├── codex/ (AGENTS.md + .agents/skills symlink) |
231 | 248 | ├── standalone-python/ (DIY conductor entrypoint) |
232 | 249 | └── antigravity/ (ANTIGRAVITY.md) |
233 | 250 |
|
| 251 | +harness_manager/ # v0.9.0 manifest-driven Python backend |
| 252 | +├── schema.py # adapter.json validator (path-safe on POSIX + Windows) |
| 253 | +├── install.py # applies file entries per merge_policy |
| 254 | +├── state.py # install.json read/write with fcntl/msvcrt locking |
| 255 | +├── doctor.py # read-only audit + pre-v0.9 migration synthesis |
| 256 | +├── remove.py # safe uninstall with shared-file detection + ownership handoff |
| 257 | +├── post_install.py # named built-ins (openclaw_register_workspace) |
| 258 | +├── manage_tui.py # interactive menu loop for add/remove/audit |
| 259 | +└── cli.py # argparse dispatcher for install.sh / install.ps1 |
| 260 | +
|
234 | 261 | docs/ # architecture, getting-started, per-harness |
235 | | -install.sh # mac / linux / git-bash installer |
236 | | -install.ps1 # Windows PowerShell installer |
| 262 | +install.sh # mac / linux / git-bash installer (thin Python dispatcher) |
| 263 | +install.ps1 # Windows PowerShell installer (thin Python dispatcher) |
| 264 | +Formula/agentic-stack.rb # Homebrew formula |
237 | 265 | CHANGELOG.md # per-version release notes (v0.1.0 onward) |
238 | 266 | onboard.py # onboarding wizard entry point |
239 | 267 | onboard_features.py # .features.json read/write |
|
0 commit comments