Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
10 changes: 6 additions & 4 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@

**Keep one portable memory-and-skills layer across coding-agent harnesses, so switching tools doesn't reset how your agent works.**

A portable `.agent/` folder (memory + skills + protocols) that plugs into Claude Code, Cursor, Windsurf, OpenCode, OpenClaw, GitHub Copilot CLI, Google Gemini CLI, Hermes, Pi Coding Agent, Codex, Antigravity, or a DIY Python loop — and keeps its knowledge when you switch.
A portable `.agent/` folder (memory + skills + protocols) that plugs into Claude Code, Cursor, Windsurf, OpenCode, OpenClaw, GitHub Copilot CLI, Google Gemini CLI, Hermes, Pi Coding Agent, Codex, Autohand Code CLI, Antigravity, or a DIY Python loop — and keeps its knowledge when you switch.

It also includes a local data layer so you can monitor the whole suite of
agents from one place: harness activity, cron runs, active agents, token/cost
Expand Down Expand Up @@ -142,7 +142,7 @@ brew install agentic-stack
# drop the brain into any project — the onboarding wizard runs automatically
cd your-project
agentic-stack claude-code
# or: cursor | windsurf | opencode | openclaw | copilot-cli | gemini | hermes | pi | codex | standalone-python | antigravity
# or: cursor | windsurf | opencode | openclaw | copilot-cli | gemini | hermes | pi | codex | autohand-code | standalone-python | antigravity
```

### Windows (PowerShell)
Expand All @@ -167,7 +167,7 @@ agentic-stack dashboard
git clone https://github.com/codejunkie99/agentic-stack.git
cd agentic-stack && ./install.sh claude-code # mac / linux / git-bash
# or on Windows PowerShell: .\install.ps1 claude-code
# adapters: claude-code | cursor | windsurf | opencode | openclaw | copilot-cli | gemini | hermes | pi | codex | standalone-python | antigravity
# adapters: claude-code | cursor | windsurf | opencode | openclaw | copilot-cli | gemini | hermes | pi | codex | autohand-code | standalone-python | antigravity
```

### Once installed: manage what's wired
Expand Down Expand Up @@ -244,7 +244,7 @@ from installed `SKILL.md` files.
## Onboarding wizard

If you ran bare `./install.sh` (no adapter name), the wizard starts
with a **multi-select harness step**: it lists all 12 adapters, pre-
with a **multi-select harness step**: it lists all 13 adapters, pre-
checks any it detects on disk, and installs each one you confirm with
space + enter. After the install(s), the preferences flow runs.

Expand Down Expand Up @@ -437,6 +437,7 @@ adapters/ # one small shim per harness, each with adapter.
├── hermes/ (AGENTS.md)
├── pi/ (AGENTS.md + .pi/skills symlink)
├── codex/ (AGENTS.md + .agents/skills symlink)
├── autohand-code/ (AGENTS.md + .autohand/skills symlink)
├── standalone-python/ (DIY conductor entrypoint)
└── antigravity/ (ANTIGRAVITY.md)

Expand Down Expand Up @@ -495,6 +496,7 @@ verify_codex_fixes.py # v0.8.0 regression checks (33 checks)
| **Hermes Agent** | `AGENTS.md` (agentskills.io compatible) | partial (own memory) |
| **Pi Coding Agent** | `AGENTS.md` + `.pi/skills/` + `.pi/extensions/` | yes (`tool_result` event) |
| **Codex** | `AGENTS.md` + `.agents/skills/` | no (manual reflect calls) |
| **Autohand Code CLI** | `AGENTS.md` + `.autohand/skills/` | no (manual reflect calls) |
| **Standalone Python** | `run.py` (any LLM) | yes (full control) |
| **Antigravity** | `ANTIGRAVITY.md` | yes (system context) |

Expand Down
17 changes: 17 additions & 0 deletions adapters/autohand-code/AGENTS.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,17 @@
# AGENTS.md — Autohand Code CLI adapter for agentic-stack

Autohand Code CLI reads `AGENTS.md` as project instructions. This file
points it at the portable `.agent/` brain so Autohand shares the same
memory, skills, and protocols as the other installed harnesses.

Before acting:

1. Read `.agent/AGENTS.md`.
2. Read `.agent/memory/personal/PREFERENCES.md` when it exists.
3. Use `.agent/tools/recall.py "<task intent>"` for relevant accepted
lessons on non-trivial work.
4. Prefer skills from `.agent/skills/` when their triggers match.

After meaningful work, record a short reflection through
`.agent/tools/memory_reflect.py` so the normal dream/review cycle can
stage candidate lessons.
48 changes: 48 additions & 0 deletions adapters/autohand-code/README.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,48 @@
# Autohand Code CLI adapter

[Autohand Code CLI](https://github.com/autohandai/code-cli) reads
`AGENTS.md` for project instructions and discovers project skills from
`.autohand/skills/`. This adapter layers the portable `.agent/` brain on
top so Autohand can share the same memory, skills, and protocols as the
other harnesses.

## Install
```bash
./install.sh autohand-code
```

Or on Windows PowerShell:
```powershell
.\install.ps1 autohand-code C:\path\to\your-project
```

## What it wires up
- `AGENTS.md` — Autohand reads this as project instructions. If another
adapter already installed `AGENTS.md`, this adapter leaves it in place.
- `.autohand/skills/` → `.agent/skills/` — Autohand scans this path for
project-level skills. The installer creates a symlink when possible
and falls back to copying / merging when symlinks are unavailable.

## Verify
Run Autohand in the project and ask:

```bash
autohand "Summarize the current instructions."
```

It should mention `.agent/AGENTS.md` and the portable memory files.

Then ask:

```bash
autohand "What's in my lessons file?"
```

It should read `.agent/memory/semantic/LESSONS.md`.

## Notes
- This adapter does not install Autohand hooks. It relies on the same
manual `recall.py` and `memory_reflect.py` calls used by the Cursor
and Windsurf paths.
- If `.autohand/skills/` is a copied directory rather than a symlink,
re-run the installer after editing `.agent/skills/` to sync updates.
16 changes: 16 additions & 0 deletions adapters/autohand-code/adapter.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,16 @@
{
"name": "autohand-code",
"description": "Autohand Code CLI — AGENTS.md + .autohand/skills mirror (Autohand project-level skills directory per https://github.com/autohandai/code-cli).",
"files": [
{
"src": "AGENTS.md",
"dst": "AGENTS.md",
"merge_policy": "skip_if_exists"
}
],
"skills_link": {
"target": ".agent/skills",
"dst": ".autohand/skills",
"fallback": "rsync_with_delete"
}
}
2 changes: 1 addition & 1 deletion docs/getting-started.md
Original file line number Diff line number Diff line change
Expand Up @@ -40,7 +40,7 @@ If you installed with Homebrew, run the CLI from your project root:
```bash
cd your-project
agentic-stack claude-code
# or: cursor | windsurf | opencode | openclaw | copilot-cli | gemini | hermes | pi | codex | standalone-python | antigravity
# or: cursor | windsurf | opencode | openclaw | copilot-cli | gemini | hermes | pi | codex | autohand-code | standalone-python | antigravity
```

If you are using a source checkout, the install command above already picked
Expand Down
53 changes: 53 additions & 0 deletions docs/per-harness/autohand-code.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,53 @@
# Autohand Code CLI setup

[Autohand Code CLI](https://github.com/autohandai/code-cli) reads
`AGENTS.md` as project instructions and discovers project skills from
`.autohand/skills/`. Our adapter layers the portable `.agent/` brain on
top so you keep one knowledge base even if you later swap harnesses.

## What the adapter installs
- `AGENTS.md` at project root. Skipped if one already exists, since
Autohand, pi, hermes, opencode, and Codex can share the same file.
- `.autohand/skills/` symlinked to `.agent/skills/` when possible.
Falls back to copying / merging on platforms without symlink support.

## Install
```bash
./install.sh autohand-code
autohand
```

On Windows PowerShell:
```powershell
.\install.ps1 autohand-code C:\path\to\your-project
autohand
```

## How it works
- Autohand loads `AGENTS.md` as repository guidance. The adapter file
points it at `.agent/AGENTS.md`, `PREFERENCES.md`, `LESSONS.md`, and
`permissions.md`.
- Autohand scans `.autohand/skills/` for project-level skills. The
adapter mirrors `.agent/skills/` there so portable skills are visible
without duplication.
- The adapter intentionally does not install Autohand hooks. Manual
`recall.py` and `memory_reflect.py` calls remain the stable
cross-platform path.

## Verify
```bash
autohand "Summarize the current instructions."
autohand "What's in my lessons file?"
```

Expected:
- the first command mentions `.agent/AGENTS.md`
- the second reads `.agent/memory/semantic/LESSONS.md`

## Troubleshooting
- If Autohand does not pick up `AGENTS.md`, restart it from the
repository root and run the `Summarize the current instructions` check
again.
- If skills are missing, inspect `.autohand/skills/`. On filesystems
without symlink support, the installer copies / merges the directory
instead; re-run the installer after updating `.agent/skills/`.
1 change: 1 addition & 0 deletions harness_manager/doctor.py
Original file line number Diff line number Diff line change
Expand Up @@ -38,6 +38,7 @@
"openclaw": [(".openclaw-system.md", "strong")],
"pi": [(".pi/extensions/memory-hook.ts", "strong")],
"codex": [(".agents/skills", "strong")],
"autohand-code": [(".autohand/skills", "strong")],
"antigravity": [("ANTIGRAVITY.md", "strong")],
"opencode": [("opencode.json", "strong")],
"hermes": [("AGENTS.md", "weak")], # AGENTS.md alone is ambiguous
Expand Down
5 changes: 4 additions & 1 deletion harness_manager/transfer_plan.py
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,7 @@
from typing import Iterable


VALID_TARGETS = ("codex", "cursor", "windsurf", "terminal")
VALID_TARGETS = ("codex", "autohand-code", "cursor", "windsurf", "terminal")
CORE_SCOPES = ("preferences", "accepted_lessons", "skills")
DEFAULT_SCOPES = CORE_SCOPES + ("working", "episodic", "candidates")
SENSITIVE_SCOPES = ("working", "episodic", "candidates", "data_layer", "flywheel")
Expand All @@ -16,6 +16,9 @@
TARGET_ALIASES = {
"codex": "codex",
"openai": "codex",
"autohand": "autohand-code",
"autohand-code": "autohand-code",
"autohand-code-cli": "autohand-code",
"cursor": "cursor",
"windsurf": "windsurf",
"cascade": "windsurf",
Expand Down
2 changes: 1 addition & 1 deletion install.ps1
Original file line number Diff line number Diff line change
Expand Up @@ -22,7 +22,7 @@
# # installed interactive projects
#
# adapter-name: claude-code | copilot-cli | cursor | gemini | windsurf |
# opencode | openclaw | hermes | pi | codex |
# opencode | openclaw | hermes | pi | codex | autohand-code |
# standalone-python | antigravity
#
# All real logic lives in harness_manager/ (Python). This script is a
Expand Down
2 changes: 1 addition & 1 deletion install.sh
Original file line number Diff line number Diff line change
Expand Up @@ -23,7 +23,7 @@
# # installed interactive projects
#
# adapter-name: claude-code | copilot-cli | cursor | gemini | windsurf |
# opencode | openclaw | hermes | pi | codex |
# opencode | openclaw | hermes | pi | codex | autohand-code |
# standalone-python | antigravity
#
# All real logic lives in harness_manager/ (Python). This script is a
Expand Down