oacp-cli 0.2.0__tar.gz → 0.2.2__tar.gz
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- {oacp_cli-0.2.0 → oacp_cli-0.2.2}/CHANGELOG.md +28 -1
- {oacp_cli-0.2.0 → oacp_cli-0.2.2}/PKG-INFO +76 -83
- {oacp_cli-0.2.0 → oacp_cli-0.2.2}/QUICKSTART.md +6 -1
- {oacp_cli-0.2.0 → oacp_cli-0.2.2}/README.md +75 -82
- {oacp_cli-0.2.0 → oacp_cli-0.2.2}/SPEC.md +95 -25
- {oacp_cli-0.2.0 → oacp_cli-0.2.2}/docs/guides/runtime_capability_matrix.md +31 -32
- {oacp_cli-0.2.0 → oacp_cli-0.2.2}/docs/guides/setup.md +34 -12
- {oacp_cli-0.2.0 → oacp_cli-0.2.2}/docs/protocol/dispatch_states.yaml +1 -1
- {oacp_cli-0.2.0 → oacp_cli-0.2.2}/oacp/cli.py +3 -0
- {oacp_cli-0.2.0 → oacp_cli-0.2.2}/pyproject.toml +2 -1
- {oacp_cli-0.2.0 → oacp_cli-0.2.2}/scripts/codex_session_init.py +2 -2
- {oacp_cli-0.2.0 → oacp_cli-0.2.2}/scripts/handoff_schema.py +14 -5
- {oacp_cli-0.2.0 → oacp_cli-0.2.2}/scripts/oacp_doctor.py +2 -1
- oacp_cli-0.2.2/scripts/oacp_watch.py +403 -0
- {oacp_cli-0.2.0 → oacp_cli-0.2.2}/scripts/send_inbox_message.py +14 -1
- {oacp_cli-0.2.0 → oacp_cli-0.2.2}/scripts/write_event.py +21 -3
- {oacp_cli-0.2.0 → oacp_cli-0.2.2}/tests/test_handoff_schema.py +20 -1
- {oacp_cli-0.2.0 → oacp_cli-0.2.2}/tests/test_oacp_cli.py +13 -0
- {oacp_cli-0.2.0 → oacp_cli-0.2.2}/tests/test_oacp_doctor.py +8 -5
- oacp_cli-0.2.2/tests/test_oacp_watch.py +345 -0
- {oacp_cli-0.2.0 → oacp_cli-0.2.2}/tests/test_send_inbox_message.py +24 -1
- oacp_cli-0.2.2/tests/test_write_event.py +146 -0
- {oacp_cli-0.2.0 → oacp_cli-0.2.2}/.github/workflows/ci.yml +0 -0
- {oacp_cli-0.2.0 → oacp_cli-0.2.2}/.github/workflows/release.yml +0 -0
- {oacp_cli-0.2.0 → oacp_cli-0.2.2}/.gitignore +0 -0
- {oacp_cli-0.2.0 → oacp_cli-0.2.2}/CONTRIBUTING.md +0 -0
- {oacp_cli-0.2.0 → oacp_cli-0.2.2}/LICENSE +0 -0
- {oacp_cli-0.2.0 → oacp_cli-0.2.2}/Makefile +0 -0
- {oacp_cli-0.2.0 → oacp_cli-0.2.2}/SECURITY.md +0 -0
- {oacp_cli-0.2.0 → oacp_cli-0.2.2}/docs/guides/adoption.md +0 -0
- {oacp_cli-0.2.0 → oacp_cli-0.2.2}/docs/guides/doctor.md +0 -0
- {oacp_cli-0.2.0 → oacp_cli-0.2.2}/docs/guides/prompt_caching.md +0 -0
- {oacp_cli-0.2.0 → oacp_cli-0.2.2}/docs/guides/unified_skill_spec.md +0 -0
- {oacp_cli-0.2.0 → oacp_cli-0.2.2}/docs/guides/versioning.md +0 -0
- {oacp_cli-0.2.0 → oacp_cli-0.2.2}/docs/protocol/agent_profiles.md +0 -0
- {oacp_cli-0.2.0 → oacp_cli-0.2.2}/docs/protocol/agent_safety_defaults.md +0 -0
- {oacp_cli-0.2.0 → oacp_cli-0.2.2}/docs/protocol/credential_scoping.md +0 -0
- {oacp_cli-0.2.0 → oacp_cli-0.2.2}/docs/protocol/cross_runtime_sync.md +0 -0
- {oacp_cli-0.2.0 → oacp_cli-0.2.2}/docs/protocol/inbox_outbox.md +0 -0
- {oacp_cli-0.2.0 → oacp_cli-0.2.2}/docs/protocol/mcp_integration.md +0 -0
- {oacp_cli-0.2.0 → oacp_cli-0.2.2}/docs/protocol/multi_agent_shared_workspace.md +0 -0
- {oacp_cli-0.2.0 → oacp_cli-0.2.2}/docs/protocol/org_memory.md +0 -0
- {oacp_cli-0.2.0 → oacp_cli-0.2.2}/docs/protocol/packet_states.yaml +0 -0
- {oacp_cli-0.2.0 → oacp_cli-0.2.2}/docs/protocol/review_loop.md +0 -0
- {oacp_cli-0.2.0 → oacp_cli-0.2.2}/docs/protocol/runtime_capabilities.md +0 -0
- {oacp_cli-0.2.0 → oacp_cli-0.2.2}/docs/protocol/session_init.md +0 -0
- {oacp_cli-0.2.0 → oacp_cli-0.2.2}/docs/protocol/skills_manifest.yaml +0 -0
- {oacp_cli-0.2.0 → oacp_cli-0.2.2}/docs/protocol/task_negotiation.md +0 -0
- {oacp_cli-0.2.0 → oacp_cli-0.2.2}/examples/quickstart/README.md +0 -0
- {oacp_cli-0.2.0 → oacp_cli-0.2.2}/mcp_servers/oacp_coordinator.py +0 -0
- {oacp_cli-0.2.0 → oacp_cli-0.2.2}/oacp/__init__.py +0 -0
- {oacp_cli-0.2.0 → oacp_cli-0.2.2}/scripts/_oacp_constants.py +0 -0
- {oacp_cli-0.2.0 → oacp_cli-0.2.2}/scripts/_oacp_env.py +0 -0
- {oacp_cli-0.2.0 → oacp_cli-0.2.2}/scripts/add_agent.py +0 -0
- {oacp_cli-0.2.0 → oacp_cli-0.2.2}/scripts/agent_profile.py +0 -0
- {oacp_cli-0.2.0 → oacp_cli-0.2.2}/scripts/check_quality_gate.py +0 -0
- {oacp_cli-0.2.0 → oacp_cli-0.2.2}/scripts/create_handoff_packet.py +0 -0
- {oacp_cli-0.2.0 → oacp_cli-0.2.2}/scripts/init_org_memory.py +0 -0
- {oacp_cli-0.2.0 → oacp_cli-0.2.2}/scripts/init_packet.sh +0 -0
- {oacp_cli-0.2.0 → oacp_cli-0.2.2}/scripts/init_project_workspace.py +0 -0
- {oacp_cli-0.2.0 → oacp_cli-0.2.2}/scripts/init_project_workspace.sh +0 -0
- {oacp_cli-0.2.0 → oacp_cli-0.2.2}/scripts/memory_archive_common.py +0 -0
- {oacp_cli-0.2.0 → oacp_cli-0.2.2}/scripts/memory_cli.py +0 -0
- {oacp_cli-0.2.0 → oacp_cli-0.2.2}/scripts/normalize_findings.py +0 -0
- {oacp_cli-0.2.0 → oacp_cli-0.2.2}/scripts/oacp_inbox.py +0 -0
- {oacp_cli-0.2.0 → oacp_cli-0.2.2}/scripts/preflight.py +0 -0
- {oacp_cli-0.2.0 → oacp_cli-0.2.2}/scripts/promote_to_archive.py +0 -0
- {oacp_cli-0.2.0 → oacp_cli-0.2.2}/scripts/restore_from_archive.py +0 -0
- {oacp_cli-0.2.0 → oacp_cli-0.2.2}/scripts/session_lifecycle_hooks.py +0 -0
- {oacp_cli-0.2.0 → oacp_cli-0.2.2}/scripts/setup_runtime.py +0 -0
- {oacp_cli-0.2.0 → oacp_cli-0.2.2}/scripts/update_workspace.sh +0 -0
- {oacp_cli-0.2.0 → oacp_cli-0.2.2}/scripts/validate_agent_card.py +0 -0
- {oacp_cli-0.2.0 → oacp_cli-0.2.2}/scripts/validate_message.py +0 -0
- {oacp_cli-0.2.0 → oacp_cli-0.2.2}/templates/agent_card.template.yaml +0 -0
- {oacp_cli-0.2.0 → oacp_cli-0.2.2}/templates/agent_profile.template.yaml +0 -0
- {oacp_cli-0.2.0 → oacp_cli-0.2.2}/templates/agent_status.template.yaml +0 -0
- {oacp_cli-0.2.0 → oacp_cli-0.2.2}/templates/checkpoint.template.md +0 -0
- {oacp_cli-0.2.0 → oacp_cli-0.2.2}/templates/claude/agents/role_agent.template.md +0 -0
- {oacp_cli-0.2.0 → oacp_cli-0.2.2}/templates/claude/rules/guardrail.template.md +0 -0
- {oacp_cli-0.2.0 → oacp_cli-0.2.2}/templates/findings_packet.template.yaml +0 -0
- {oacp_cli-0.2.0 → oacp_cli-0.2.2}/templates/github_actions_quality_gate.yaml +0 -0
- {oacp_cli-0.2.0 → oacp_cli-0.2.2}/templates/guardrails/coding_standards.template.md +0 -0
- {oacp_cli-0.2.0 → oacp_cli-0.2.2}/templates/guardrails/safe_commands.template.md +0 -0
- {oacp_cli-0.2.0 → oacp_cli-0.2.2}/templates/guardrails/secrets_rules.template.md +0 -0
- {oacp_cli-0.2.0 → oacp_cli-0.2.2}/templates/handoff_packet.template.yaml +0 -0
- {oacp_cli-0.2.0 → oacp_cli-0.2.2}/templates/inbox_message.template.yaml +0 -0
- {oacp_cli-0.2.0 → oacp_cli-0.2.2}/templates/manual_validation.template.md +0 -0
- {oacp_cli-0.2.0 → oacp_cli-0.2.2}/templates/merge_decision.template.md +0 -0
- {oacp_cli-0.2.0 → oacp_cli-0.2.2}/templates/org-memory/decisions.md +0 -0
- {oacp_cli-0.2.0 → oacp_cli-0.2.2}/templates/org-memory/events/.gitkeep +0 -0
- {oacp_cli-0.2.0 → oacp_cli-0.2.2}/templates/org-memory/events/20260317-170120-example-api-convention.md +0 -0
- {oacp_cli-0.2.0 → oacp_cli-0.2.2}/templates/org-memory/recent.md +0 -0
- {oacp_cli-0.2.0 → oacp_cli-0.2.2}/templates/org-memory/rules.md +0 -0
- {oacp_cli-0.2.0 → oacp_cli-0.2.2}/templates/review_packet.template.md +0 -0
- {oacp_cli-0.2.0 → oacp_cli-0.2.2}/templates/roles/role_baseline.template.md +0 -0
- {oacp_cli-0.2.0 → oacp_cli-0.2.2}/templates/roles/role_definition.template.yaml +0 -0
- {oacp_cli-0.2.0 → oacp_cli-0.2.2}/templates/runtime_capabilities.yaml +0 -0
- {oacp_cli-0.2.0 → oacp_cli-0.2.2}/templates/skills_manifest.template.yaml +0 -0
- {oacp_cli-0.2.0 → oacp_cli-0.2.2}/templates/test_packet.template.md +0 -0
- {oacp_cli-0.2.0 → oacp_cli-0.2.2}/tests/test_add_agent.py +0 -0
- {oacp_cli-0.2.0 → oacp_cli-0.2.2}/tests/test_agent_profile.py +0 -0
- {oacp_cli-0.2.0 → oacp_cli-0.2.2}/tests/test_codex_session_init.py +0 -0
- {oacp_cli-0.2.0 → oacp_cli-0.2.2}/tests/test_create_handoff_packet.py +0 -0
- {oacp_cli-0.2.0 → oacp_cli-0.2.2}/tests/test_github_workflows.py +0 -0
- {oacp_cli-0.2.0 → oacp_cli-0.2.2}/tests/test_init_project_workspace.py +0 -0
- {oacp_cli-0.2.0 → oacp_cli-0.2.2}/tests/test_memory_archive.py +0 -0
- {oacp_cli-0.2.0 → oacp_cli-0.2.2}/tests/test_oacp_constants.py +0 -0
- {oacp_cli-0.2.0 → oacp_cli-0.2.2}/tests/test_oacp_coordinator.py +0 -0
- {oacp_cli-0.2.0 → oacp_cli-0.2.2}/tests/test_oacp_env.py +0 -0
- {oacp_cli-0.2.0 → oacp_cli-0.2.2}/tests/test_oacp_inbox.py +0 -0
- {oacp_cli-0.2.0 → oacp_cli-0.2.2}/tests/test_preflight.py +0 -0
- {oacp_cli-0.2.0 → oacp_cli-0.2.2}/tests/test_review_loop.py +0 -0
- {oacp_cli-0.2.0 → oacp_cli-0.2.2}/tests/test_session_lifecycle_hooks.py +0 -0
- {oacp_cli-0.2.0 → oacp_cli-0.2.2}/tests/test_setup_runtime.py +0 -0
- {oacp_cli-0.2.0 → oacp_cli-0.2.2}/tests/test_update_workspace.py +0 -0
- {oacp_cli-0.2.0 → oacp_cli-0.2.2}/tests/test_validate_agent_card.py +0 -0
- {oacp_cli-0.2.0 → oacp_cli-0.2.2}/tests/test_validate_message.py +0 -0
- {oacp_cli-0.2.0 → oacp_cli-0.2.2}/tests/test_workspace_discovery.py +0 -0
|
@@ -5,6 +5,30 @@ All notable changes to this project will be documented in this file.
|
|
|
5
5
|
The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.1.0/),
|
|
6
6
|
and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
|
|
7
7
|
|
|
8
|
+
## [0.2.2] - 2026-04-17
|
|
9
|
+
|
|
10
|
+
### Added
|
|
11
|
+
|
|
12
|
+
- `oacp watch` — monitor-friendly inbox/outbox watcher with structured output and partial-progress preservation on errors
|
|
13
|
+
|
|
14
|
+
### Changed
|
|
15
|
+
|
|
16
|
+
- Docs: refreshed cross-runtime capability matrix and public-skill parity framing
|
|
17
|
+
|
|
18
|
+
## [0.2.1] - 2026-03-22
|
|
19
|
+
|
|
20
|
+
### Fixed
|
|
21
|
+
|
|
22
|
+
- `oacp doctor` no longer fails when `gh` CLI is not installed — `gh` is now optional (#78)
|
|
23
|
+
- `oacp send` relaxed handoff body schema validation to accept freeform content (#78)
|
|
24
|
+
- `oacp write-event --related` now handles JSON arrays correctly (#76)
|
|
25
|
+
|
|
26
|
+
### Changed
|
|
27
|
+
|
|
28
|
+
- README: refreshed command table with all v0.2.0 CLI commands, updated workspace layout diagram (#75, #77, #84)
|
|
29
|
+
- SPEC.md: synced with v0.2.0 — version header, org-memory section, kernel inventory with exposure column (#85)
|
|
30
|
+
- Onboarding docs: setup.md uses `pip install` as primary install, QUICKSTART.md adds `--agents`/`--repo` flags, CHANGELOG.md fixes `oacp memory archive` command name (#86)
|
|
31
|
+
|
|
8
32
|
## [0.2.0] - 2026-03-20
|
|
9
33
|
|
|
10
34
|
### Added
|
|
@@ -22,7 +46,7 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
|
|
|
22
46
|
|
|
23
47
|
### Added
|
|
24
48
|
|
|
25
|
-
- Memory archive layer with `oacp archive` CLI command for active/archive split (#62, #11)
|
|
49
|
+
- Memory archive layer with `oacp memory archive` CLI command for active/archive split (#62, #11)
|
|
26
50
|
- Declarative agent profiles with YAML schema and `oacp agent init|show|list` CLI commands (#52, #48)
|
|
27
51
|
- `known_debt.md` as standard memory file for tracking technical debt (#53, #32)
|
|
28
52
|
|
|
@@ -86,6 +110,9 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
|
|
|
86
110
|
- Checkout step in github-release workflow job (#19)
|
|
87
111
|
- Pre-release audit fixes: SHA-pinned actions, dangling doc refs (#15, #16)
|
|
88
112
|
|
|
113
|
+
[0.2.2]: https://github.com/kiloloop/oacp/compare/v0.2.1...v0.2.2
|
|
114
|
+
[0.2.1]: https://github.com/kiloloop/oacp/compare/v0.2.0...v0.2.1
|
|
115
|
+
[0.2.0]: https://github.com/kiloloop/oacp/compare/v0.1.9...v0.2.0
|
|
89
116
|
[0.1.9]: https://github.com/kiloloop/oacp/compare/v0.1.2...v0.1.9
|
|
90
117
|
[0.1.2]: https://github.com/kiloloop/oacp/compare/v0.1.1...v0.1.2
|
|
91
118
|
[0.1.1]: https://github.com/kiloloop/oacp/compare/v0.1.0...v0.1.1
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: oacp-cli
|
|
3
|
-
Version: 0.2.
|
|
3
|
+
Version: 0.2.2
|
|
4
4
|
Summary: Open Agent Coordination Protocol CLI for file-based multi-agent workflows
|
|
5
5
|
Project-URL: Homepage, https://github.com/kiloloop/oacp
|
|
6
6
|
Project-URL: Repository, https://github.com/kiloloop/oacp
|
|
@@ -34,44 +34,38 @@ Description-Content-Type: text/markdown
|
|
|
34
34
|
|
|
35
35
|
> **[Try the quickstart →](examples/quickstart/)** — send your first message to an AI agent in 5 minutes.
|
|
36
36
|
|
|
37
|
-
**
|
|
37
|
+
**Coordinate agents without the chaos.**
|
|
38
38
|
|
|
39
|
-
A file-based
|
|
39
|
+
A file-based protocol for multi-agent engineering workflows. OACP defines the message formats, review processes, and safety rules that let AI agents on different runtimes collaborate through a shared filesystem. Not a framework or SDK — just conventions, YAML schemas, and scripts that any runtime can implement.
|
|
40
40
|
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
## Try it now
|
|
44
|
-
|
|
45
|
-
See if your machine is ready for multi-agent workflows — no project setup required:
|
|
41
|
+
## Quick Start
|
|
46
42
|
|
|
47
43
|
```bash
|
|
48
44
|
pip install oacp-cli
|
|
49
|
-
oacp
|
|
45
|
+
oacp init my-project --agents alice,bob
|
|
46
|
+
oacp send my-project --from alice --to bob --type task_request \
|
|
47
|
+
--subject "Implement feature X" --body "Details here..."
|
|
50
48
|
```
|
|
51
49
|
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
```
|
|
50
|
+
When running inside a configured agent runtime, `--from` can be omitted — OACP infers the sender from `OACP_AGENT`, `AGENT_NAME`, or the agent card. See [QUICKSTART.md](QUICKSTART.md) for a full walkthrough.
|
|
51
|
+
|
|
52
|
+
### What you get
|
|
53
|
+
|
|
54
|
+
- **Inbox/outbox messaging** — async YAML messages with threading, broadcast, and expiry
|
|
55
|
+
- **Structured review loop** — severity-graded findings, quality gates, multi-round review
|
|
56
|
+
- **Inbox CLI** — `oacp inbox` lists pending messages across agents with table or `--json` output
|
|
57
|
+
- **Watch CLI** — `oacp watch` emits inbox delta events for Claude Monitor or shell loops
|
|
58
|
+
- **Durable shared memory** — project facts, decisions, and known debt with active/archive split
|
|
59
|
+
- **Agent safety defaults** — baseline rules for git, credentials, and scope discipline
|
|
60
|
+
- **Runtime-agnostic** — works with any runtime that reads/writes files
|
|
64
61
|
|
|
65
|
-
|
|
62
|
+
## Try It Now
|
|
66
63
|
|
|
67
|
-
|
|
64
|
+
After installing, run `oacp doctor` to verify your environment is wired up:
|
|
68
65
|
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
- **Dispatch state machine** — full task lifecycle tracking from assignment to merge
|
|
73
|
-
- **Agent safety defaults** — baseline rules for git, credentials, staging, and scope discipline
|
|
74
|
-
- **Runtime-agnostic** — works with any agent runtime that can read/write files
|
|
66
|
+
```bash
|
|
67
|
+
oacp doctor
|
|
68
|
+
```
|
|
75
69
|
|
|
76
70
|
## Why OACP?
|
|
77
71
|
|
|
@@ -150,13 +144,36 @@ uv tool install .
|
|
|
150
144
|
|
|
151
145
|
## Commands
|
|
152
146
|
|
|
153
|
-
|
|
154
|
-
|
|
155
|
-
|
|
156
|
-
|
|
157
|
-
|
|
147
|
+
| Command | Description |
|
|
148
|
+
|---------|-------------|
|
|
149
|
+
| `oacp init` | Create a project workspace under `$OACP_HOME/projects/` |
|
|
150
|
+
| `oacp add-agent` | Add an agent to an existing project workspace |
|
|
151
|
+
| `oacp setup` | Generate runtime-specific config files (Claude, Codex, etc.) |
|
|
152
|
+
| `oacp send` | Send a protocol-compliant inbox message (`--from` auto-inferred) |
|
|
153
|
+
| `oacp inbox` | List pending messages across agents (table or `--json`) |
|
|
154
|
+
| `oacp watch` | Emit inbox delta events for one agent across selected projects |
|
|
155
|
+
| `oacp memory` | Archive or restore project memory files |
|
|
156
|
+
| `oacp agent` | Manage global agent profiles (`init`, `show`, `list`) |
|
|
157
|
+
| `oacp org-memory` | Initialize org-level memory at `$OACP_HOME/org-memory/` |
|
|
158
|
+
| `oacp write-event` | Write an event to `org-memory/events/` |
|
|
159
|
+
| `oacp doctor` | Check environment and workspace health |
|
|
160
|
+
| `oacp validate` | Validate an inbox/outbox YAML message |
|
|
161
|
+
| `oacp --version` | Print the installed version |
|
|
162
|
+
|
|
163
|
+
<details>
|
|
164
|
+
<summary>Key flags</summary>
|
|
165
|
+
|
|
166
|
+
**`oacp send`**: `--in-reply-to`, `--expires`, `--body-file`, `--channel`, `--dry-run`, `--json`, `--quiet`
|
|
167
|
+
|
|
168
|
+
**`oacp watch`**: `--agent`, repeatable `--project`, `--all-projects`, `--json`
|
|
169
|
+
|
|
170
|
+
**`oacp doctor`**: `--fix` (auto-fix safe issues), `--json`, `-o/--output`
|
|
171
|
+
|
|
172
|
+
**`oacp memory`**: `oacp memory archive <project> <file>`, `oacp memory restore <project> <file>`
|
|
173
|
+
|
|
174
|
+
</details>
|
|
158
175
|
|
|
159
|
-
If `OACP_HOME` is unset, workspace commands default to `~/oacp
|
|
176
|
+
If `OACP_HOME` is unset, workspace commands default to `~/oacp`.
|
|
160
177
|
|
|
161
178
|
## Key Concepts
|
|
162
179
|
|
|
@@ -174,61 +191,24 @@ If `OACP_HOME` is unset, workspace commands default to `~/oacp` (underscore).
|
|
|
174
191
|
```
|
|
175
192
|
oacp/
|
|
176
193
|
├── docs/
|
|
177
|
-
│ ├── protocol/ # Canonical protocol specifications
|
|
194
|
+
│ ├── protocol/ # Canonical protocol specifications
|
|
178
195
|
│ └── guides/ # Setup, adoption, versioning
|
|
179
|
-
├── scripts/ #
|
|
180
|
-
├── templates/ # Packet, role, and guardrail templates
|
|
196
|
+
├── scripts/ # Kernel scripts (Python + shell)
|
|
197
|
+
├── templates/ # Packet, role, and guardrail templates
|
|
181
198
|
├── tests/ # Test suite
|
|
182
199
|
├── Makefile # Task runner (make help for all targets)
|
|
183
200
|
└── SPEC.md # Full protocol specification
|
|
184
201
|
```
|
|
185
202
|
|
|
186
|
-
##
|
|
187
|
-
|
|
188
|
-
```bash
|
|
189
|
-
# 1. Clone the repo
|
|
190
|
-
git clone https://github.com/kiloloop/oacp.git
|
|
191
|
-
cd oacp
|
|
192
|
-
|
|
193
|
-
# 2. Install the CLI
|
|
194
|
-
uv tool install oacp-cli
|
|
195
|
-
|
|
196
|
-
# 3. Initialize a project workspace
|
|
197
|
-
export OACP_HOME="$HOME/oacp"
|
|
198
|
-
oacp init my-project
|
|
199
|
-
|
|
200
|
-
# 4. Send your first message
|
|
201
|
-
oacp send my-project \
|
|
202
|
-
--from alice --to bob --type task_request \
|
|
203
|
-
--subject "Implement feature X" \
|
|
204
|
-
--body "Details here..."
|
|
205
|
-
|
|
206
|
-
# 5. Check environment health
|
|
207
|
-
oacp doctor
|
|
208
|
-
```
|
|
209
|
-
|
|
210
|
-
See [QUICKSTART.md](QUICKSTART.md) for a complete 5-minute walkthrough.
|
|
211
|
-
|
|
212
|
-
## Scripts
|
|
213
|
-
|
|
214
|
-
OACP ships kernel scripts — the key CLI commands you'll use most:
|
|
203
|
+
## Related
|
|
215
204
|
|
|
216
|
-
-
|
|
217
|
-
- **`oacp add-agent`** — add an agent to an existing project workspace
|
|
218
|
-
- **`oacp memory`** — archive or restore project memory files
|
|
219
|
-
- **`oacp setup`** — generate runtime-specific config files (Claude, Codex, Gemini)
|
|
220
|
-
- **`oacp send`** — send protocol-compliant messages between agents
|
|
221
|
-
- **`oacp doctor`** — environment and workspace health check
|
|
222
|
-
- **`oacp validate`** — validate inbox/outbox YAML messages
|
|
223
|
-
|
|
224
|
-
Run `make help` to see all available Makefile targets, or see [SPEC.md](SPEC.md) for the full script inventory.
|
|
205
|
+
- **[agent-estimate](https://github.com/kiloloop/agent-estimate)** — Estimate how long agent tasks take. Pairs with OACP dispatch for task sizing.
|
|
225
206
|
|
|
226
207
|
## Prerequisites
|
|
227
208
|
|
|
228
209
|
- Python 3.9+
|
|
229
210
|
- Bash 3.2+ (macOS default is fine)
|
|
230
|
-
- `gh` CLI (for GitHub operations)
|
|
231
|
-
- `pyyaml` (`pip install pyyaml`)
|
|
211
|
+
- `gh` CLI (optional, for GitHub operations)
|
|
232
212
|
|
|
233
213
|
## Protocol Specification
|
|
234
214
|
|
|
@@ -244,16 +224,15 @@ Individual protocol specs live in [`docs/protocol/`](docs/protocol/).
|
|
|
244
224
|
|
|
245
225
|
## Workspace Layout
|
|
246
226
|
|
|
247
|
-
|
|
227
|
+
`oacp init` creates a project workspace with this structure:
|
|
248
228
|
|
|
249
229
|
```
|
|
250
230
|
$OACP_HOME/projects/<project>/
|
|
251
231
|
├── agents/
|
|
252
232
|
│ ├── <agent-a>/
|
|
253
|
-
│ │ ├── inbox/
|
|
254
|
-
│ │ ├── outbox/
|
|
255
|
-
│ │
|
|
256
|
-
│ │ └── agent_card.yaml # Static agent identity
|
|
233
|
+
│ │ ├── inbox/ # Other agents write here
|
|
234
|
+
│ │ ├── outbox/ # Sent messages (copies)
|
|
235
|
+
│ │ └── dead_letter/ # Undeliverable messages
|
|
257
236
|
│ └── <agent-b>/
|
|
258
237
|
│ └── ...
|
|
259
238
|
├── memory/ # Shared durable memory
|
|
@@ -262,10 +241,24 @@ $OACP_HOME/projects/<project>/
|
|
|
262
241
|
│ ├── open_threads.md
|
|
263
242
|
│ ├── known_debt.md
|
|
264
243
|
│ └── archive/
|
|
244
|
+
├── artifacts/ # Build/research artifacts
|
|
245
|
+
├── checkpoints/ # Progress checkpoints
|
|
246
|
+
├── logs/ # Agent session logs
|
|
247
|
+
├── merges/ # Merge decision records
|
|
265
248
|
├── packets/ # Review/findings artifacts
|
|
266
249
|
└── workspace.json # Project metadata
|
|
267
250
|
```
|
|
268
251
|
|
|
252
|
+
Optionally, `oacp org-memory init` creates org-level shared memory:
|
|
253
|
+
|
|
254
|
+
```
|
|
255
|
+
$OACP_HOME/org-memory/
|
|
256
|
+
├── recent.md # Always-loaded rolling summary
|
|
257
|
+
├── decisions.md # Org-wide decisions
|
|
258
|
+
├── rules.md # Standing conventions
|
|
259
|
+
└── events/ # Timestamped event entries
|
|
260
|
+
```
|
|
261
|
+
|
|
269
262
|
## Development
|
|
270
263
|
|
|
271
264
|
```bash
|
|
@@ -5,7 +5,6 @@ Get from zero to your first agent-to-agent message in 5 minutes.
|
|
|
5
5
|
## Prerequisites
|
|
6
6
|
|
|
7
7
|
- Python 3.9+ and Bash 3.2+
|
|
8
|
-
- `pip install pyyaml`
|
|
9
8
|
|
|
10
9
|
## 1. Set Up OACP Home
|
|
11
10
|
|
|
@@ -34,6 +33,12 @@ pipx install oacp-cli
|
|
|
34
33
|
|
|
35
34
|
Every project gets its own workspace with agent inboxes, shared memory, and packet directories.
|
|
36
35
|
|
|
36
|
+
```bash
|
|
37
|
+
oacp init my-first-project --agents claude,codex,gemini --repo /path/to/repo
|
|
38
|
+
```
|
|
39
|
+
|
|
40
|
+
Or with defaults (agents: claude, codex, gemini):
|
|
41
|
+
|
|
37
42
|
```bash
|
|
38
43
|
oacp init my-first-project
|
|
39
44
|
```
|
|
@@ -8,44 +8,38 @@
|
|
|
8
8
|
|
|
9
9
|
> **[Try the quickstart →](examples/quickstart/)** — send your first message to an AI agent in 5 minutes.
|
|
10
10
|
|
|
11
|
-
**
|
|
11
|
+
**Coordinate agents without the chaos.**
|
|
12
12
|
|
|
13
|
-
A file-based
|
|
13
|
+
A file-based protocol for multi-agent engineering workflows. OACP defines the message formats, review processes, and safety rules that let AI agents on different runtimes collaborate through a shared filesystem. Not a framework or SDK — just conventions, YAML schemas, and scripts that any runtime can implement.
|
|
14
14
|
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
## Try it now
|
|
18
|
-
|
|
19
|
-
See if your machine is ready for multi-agent workflows — no project setup required:
|
|
15
|
+
## Quick Start
|
|
20
16
|
|
|
21
17
|
```bash
|
|
22
18
|
pip install oacp-cli
|
|
23
|
-
oacp
|
|
19
|
+
oacp init my-project --agents alice,bob
|
|
20
|
+
oacp send my-project --from alice --to bob --type task_request \
|
|
21
|
+
--subject "Implement feature X" --body "Details here..."
|
|
24
22
|
```
|
|
25
23
|
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
```
|
|
24
|
+
When running inside a configured agent runtime, `--from` can be omitted — OACP infers the sender from `OACP_AGENT`, `AGENT_NAME`, or the agent card. See [QUICKSTART.md](QUICKSTART.md) for a full walkthrough.
|
|
25
|
+
|
|
26
|
+
### What you get
|
|
27
|
+
|
|
28
|
+
- **Inbox/outbox messaging** — async YAML messages with threading, broadcast, and expiry
|
|
29
|
+
- **Structured review loop** — severity-graded findings, quality gates, multi-round review
|
|
30
|
+
- **Inbox CLI** — `oacp inbox` lists pending messages across agents with table or `--json` output
|
|
31
|
+
- **Watch CLI** — `oacp watch` emits inbox delta events for Claude Monitor or shell loops
|
|
32
|
+
- **Durable shared memory** — project facts, decisions, and known debt with active/archive split
|
|
33
|
+
- **Agent safety defaults** — baseline rules for git, credentials, and scope discipline
|
|
34
|
+
- **Runtime-agnostic** — works with any runtime that reads/writes files
|
|
38
35
|
|
|
39
|
-
|
|
36
|
+
## Try It Now
|
|
40
37
|
|
|
41
|
-
|
|
38
|
+
After installing, run `oacp doctor` to verify your environment is wired up:
|
|
42
39
|
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
- **Dispatch state machine** — full task lifecycle tracking from assignment to merge
|
|
47
|
-
- **Agent safety defaults** — baseline rules for git, credentials, staging, and scope discipline
|
|
48
|
-
- **Runtime-agnostic** — works with any agent runtime that can read/write files
|
|
40
|
+
```bash
|
|
41
|
+
oacp doctor
|
|
42
|
+
```
|
|
49
43
|
|
|
50
44
|
## Why OACP?
|
|
51
45
|
|
|
@@ -124,13 +118,36 @@ uv tool install .
|
|
|
124
118
|
|
|
125
119
|
## Commands
|
|
126
120
|
|
|
127
|
-
|
|
128
|
-
|
|
129
|
-
|
|
130
|
-
|
|
131
|
-
|
|
121
|
+
| Command | Description |
|
|
122
|
+
|---------|-------------|
|
|
123
|
+
| `oacp init` | Create a project workspace under `$OACP_HOME/projects/` |
|
|
124
|
+
| `oacp add-agent` | Add an agent to an existing project workspace |
|
|
125
|
+
| `oacp setup` | Generate runtime-specific config files (Claude, Codex, etc.) |
|
|
126
|
+
| `oacp send` | Send a protocol-compliant inbox message (`--from` auto-inferred) |
|
|
127
|
+
| `oacp inbox` | List pending messages across agents (table or `--json`) |
|
|
128
|
+
| `oacp watch` | Emit inbox delta events for one agent across selected projects |
|
|
129
|
+
| `oacp memory` | Archive or restore project memory files |
|
|
130
|
+
| `oacp agent` | Manage global agent profiles (`init`, `show`, `list`) |
|
|
131
|
+
| `oacp org-memory` | Initialize org-level memory at `$OACP_HOME/org-memory/` |
|
|
132
|
+
| `oacp write-event` | Write an event to `org-memory/events/` |
|
|
133
|
+
| `oacp doctor` | Check environment and workspace health |
|
|
134
|
+
| `oacp validate` | Validate an inbox/outbox YAML message |
|
|
135
|
+
| `oacp --version` | Print the installed version |
|
|
136
|
+
|
|
137
|
+
<details>
|
|
138
|
+
<summary>Key flags</summary>
|
|
139
|
+
|
|
140
|
+
**`oacp send`**: `--in-reply-to`, `--expires`, `--body-file`, `--channel`, `--dry-run`, `--json`, `--quiet`
|
|
141
|
+
|
|
142
|
+
**`oacp watch`**: `--agent`, repeatable `--project`, `--all-projects`, `--json`
|
|
143
|
+
|
|
144
|
+
**`oacp doctor`**: `--fix` (auto-fix safe issues), `--json`, `-o/--output`
|
|
145
|
+
|
|
146
|
+
**`oacp memory`**: `oacp memory archive <project> <file>`, `oacp memory restore <project> <file>`
|
|
147
|
+
|
|
148
|
+
</details>
|
|
132
149
|
|
|
133
|
-
If `OACP_HOME` is unset, workspace commands default to `~/oacp
|
|
150
|
+
If `OACP_HOME` is unset, workspace commands default to `~/oacp`.
|
|
134
151
|
|
|
135
152
|
## Key Concepts
|
|
136
153
|
|
|
@@ -148,61 +165,24 @@ If `OACP_HOME` is unset, workspace commands default to `~/oacp` (underscore).
|
|
|
148
165
|
```
|
|
149
166
|
oacp/
|
|
150
167
|
├── docs/
|
|
151
|
-
│ ├── protocol/ # Canonical protocol specifications
|
|
168
|
+
│ ├── protocol/ # Canonical protocol specifications
|
|
152
169
|
│ └── guides/ # Setup, adoption, versioning
|
|
153
|
-
├── scripts/ #
|
|
154
|
-
├── templates/ # Packet, role, and guardrail templates
|
|
170
|
+
├── scripts/ # Kernel scripts (Python + shell)
|
|
171
|
+
├── templates/ # Packet, role, and guardrail templates
|
|
155
172
|
├── tests/ # Test suite
|
|
156
173
|
├── Makefile # Task runner (make help for all targets)
|
|
157
174
|
└── SPEC.md # Full protocol specification
|
|
158
175
|
```
|
|
159
176
|
|
|
160
|
-
##
|
|
161
|
-
|
|
162
|
-
```bash
|
|
163
|
-
# 1. Clone the repo
|
|
164
|
-
git clone https://github.com/kiloloop/oacp.git
|
|
165
|
-
cd oacp
|
|
166
|
-
|
|
167
|
-
# 2. Install the CLI
|
|
168
|
-
uv tool install oacp-cli
|
|
169
|
-
|
|
170
|
-
# 3. Initialize a project workspace
|
|
171
|
-
export OACP_HOME="$HOME/oacp"
|
|
172
|
-
oacp init my-project
|
|
173
|
-
|
|
174
|
-
# 4. Send your first message
|
|
175
|
-
oacp send my-project \
|
|
176
|
-
--from alice --to bob --type task_request \
|
|
177
|
-
--subject "Implement feature X" \
|
|
178
|
-
--body "Details here..."
|
|
179
|
-
|
|
180
|
-
# 5. Check environment health
|
|
181
|
-
oacp doctor
|
|
182
|
-
```
|
|
183
|
-
|
|
184
|
-
See [QUICKSTART.md](QUICKSTART.md) for a complete 5-minute walkthrough.
|
|
185
|
-
|
|
186
|
-
## Scripts
|
|
187
|
-
|
|
188
|
-
OACP ships kernel scripts — the key CLI commands you'll use most:
|
|
177
|
+
## Related
|
|
189
178
|
|
|
190
|
-
-
|
|
191
|
-
- **`oacp add-agent`** — add an agent to an existing project workspace
|
|
192
|
-
- **`oacp memory`** — archive or restore project memory files
|
|
193
|
-
- **`oacp setup`** — generate runtime-specific config files (Claude, Codex, Gemini)
|
|
194
|
-
- **`oacp send`** — send protocol-compliant messages between agents
|
|
195
|
-
- **`oacp doctor`** — environment and workspace health check
|
|
196
|
-
- **`oacp validate`** — validate inbox/outbox YAML messages
|
|
197
|
-
|
|
198
|
-
Run `make help` to see all available Makefile targets, or see [SPEC.md](SPEC.md) for the full script inventory.
|
|
179
|
+
- **[agent-estimate](https://github.com/kiloloop/agent-estimate)** — Estimate how long agent tasks take. Pairs with OACP dispatch for task sizing.
|
|
199
180
|
|
|
200
181
|
## Prerequisites
|
|
201
182
|
|
|
202
183
|
- Python 3.9+
|
|
203
184
|
- Bash 3.2+ (macOS default is fine)
|
|
204
|
-
- `gh` CLI (for GitHub operations)
|
|
205
|
-
- `pyyaml` (`pip install pyyaml`)
|
|
185
|
+
- `gh` CLI (optional, for GitHub operations)
|
|
206
186
|
|
|
207
187
|
## Protocol Specification
|
|
208
188
|
|
|
@@ -218,16 +198,15 @@ Individual protocol specs live in [`docs/protocol/`](docs/protocol/).
|
|
|
218
198
|
|
|
219
199
|
## Workspace Layout
|
|
220
200
|
|
|
221
|
-
|
|
201
|
+
`oacp init` creates a project workspace with this structure:
|
|
222
202
|
|
|
223
203
|
```
|
|
224
204
|
$OACP_HOME/projects/<project>/
|
|
225
205
|
├── agents/
|
|
226
206
|
│ ├── <agent-a>/
|
|
227
|
-
│ │ ├── inbox/
|
|
228
|
-
│ │ ├── outbox/
|
|
229
|
-
│ │
|
|
230
|
-
│ │ └── agent_card.yaml # Static agent identity
|
|
207
|
+
│ │ ├── inbox/ # Other agents write here
|
|
208
|
+
│ │ ├── outbox/ # Sent messages (copies)
|
|
209
|
+
│ │ └── dead_letter/ # Undeliverable messages
|
|
231
210
|
│ └── <agent-b>/
|
|
232
211
|
│ └── ...
|
|
233
212
|
├── memory/ # Shared durable memory
|
|
@@ -236,10 +215,24 @@ $OACP_HOME/projects/<project>/
|
|
|
236
215
|
│ ├── open_threads.md
|
|
237
216
|
│ ├── known_debt.md
|
|
238
217
|
│ └── archive/
|
|
218
|
+
├── artifacts/ # Build/research artifacts
|
|
219
|
+
├── checkpoints/ # Progress checkpoints
|
|
220
|
+
├── logs/ # Agent session logs
|
|
221
|
+
├── merges/ # Merge decision records
|
|
239
222
|
├── packets/ # Review/findings artifacts
|
|
240
223
|
└── workspace.json # Project metadata
|
|
241
224
|
```
|
|
242
225
|
|
|
226
|
+
Optionally, `oacp org-memory init` creates org-level shared memory:
|
|
227
|
+
|
|
228
|
+
```
|
|
229
|
+
$OACP_HOME/org-memory/
|
|
230
|
+
├── recent.md # Always-loaded rolling summary
|
|
231
|
+
├── decisions.md # Org-wide decisions
|
|
232
|
+
├── rules.md # Standing conventions
|
|
233
|
+
└── events/ # Timestamped event entries
|
|
234
|
+
```
|
|
235
|
+
|
|
243
236
|
## Development
|
|
244
237
|
|
|
245
238
|
```bash
|