Write an agent, a skill, a command, a hook or a rule once.
One command installs it into every AI tool you use.
What it is
Write an agent, a skill, a command, a hook or a rule once and use it in every tool you work with. The portable part follows open standards, Agent Skills and AGENTS.md, while the wiring each tool needs stays in adapters/, so nothing here is tied to a single vendor.
Install
harness asks which tools to install into, and which artifacts to bring, then puts them where each tool looks.
pip install ai-harness-cli
harness
Once installed:
harness update # bring the latest artifacts and reconcile
harness check # audit what is installed
harness remove # take back only what harness installed
Contents
The map of the repository, for writing an artifact or finding where a piece lives.
| Path | What lives there |
|---|---|
agents/ |
Agents, in the format each tool reads |
skills/ |
Skills in the open Agent Skills layout |
commands/ |
Prompts that each tool exposes as a command |
hooks/ |
Guard scripts the adapters share |
rules/ |
Global rules, linked as AGENTS.md |
adapters/ |
What each tool needs to wire the rest up |
docs/ |
How to author an artifact and how the pieces fit together |
harness, ai_harness/ |
The installer |
targets.json |
Where every artifact lands, per tool |
CONTRIBUTING.md |
How to propose a change and how releases are cut |
Catalog
What you get once it is installed.
Skills
| Name | What it does |
|---|---|
| dream | Reads the day's sessions and suggests what is worth remembering, like the fact that you prefer Postgres. |
| news-digest | Reads your feeds and delivers the day's news as one short message, skipping what you already saw. |
| task-delegation | Hands a heavy task to OpenCode so it runs on the strongest model you have available. |
| topic-research | Researches a topic across Hacker News, Reddit and GitHub, with a link behind every claim. |
Agents
| Name | What it does |
|---|---|
| code-reviewer | Reads your diff and points out bugs, security risks and missing tests. Changes nothing. |
| news-digest-validator | Checks the digest before it reaches you and cuts repeated, obvious or badly translated stories. |
| proposal-validator | Sends your plan to a different model, to catch what the first one talked itself into. |
Commands
| Name | What it does |
|---|---|
| dream | Runs dream and applies the suggestions you approve, one by one. |
| news-digest | Asks for today's digest right now. |
| review-changes | Reviews what you changed, before you open the pull request. |
| topic-research | Researches a topic and writes a report you can check, since every claim cites its source. |
| validate-proposal | Sends the plan on the table for an independent second opinion. |
Hooks
| Name | What it does |
|---|---|
| protect-secrets | Stops the agent from opening .env, key and certificate files, even when you ask by accident. |
Rules
| Name | What it does |
|---|---|
| global | Tells the agent how to work everywhere: ask when unsure, show evidence before claiming it is done. |
Integration
This is where each artifact lands.
| Artifact | Claude Code | OpenCode | Codex | Hermes |
|---|---|---|---|---|
skills/<name>/ |
~/.claude/skills |
~/.config/opencode/skills |
~/.agents/skills |
~/.hermes/skills |
agents/<name>.md |
~/.claude/agents |
~/.config/opencode/agents |
Not supported | Not supported |
commands/<name>.md |
~/.claude/commands |
~/.config/opencode/commands |
~/.codex/prompts |
Not supported |
rules/global.md |
~/.claude/CLAUDE.md |
~/.config/opencode/AGENTS.md |
~/.codex/AGENTS.md |
Not supported |
Tool support
| Tool | Skills | Agents | Commands | Rules | Hooks |
|---|---|---|---|---|---|
| OpenCode | Yes | Yes | Yes | Yes | Adapter |
| Claude Code | Yes | Yes | Yes | Yes | Yes |
| Codex | Yes | Partial | Partial | Yes | Yes |
| Hermes | Yes | No | No | Workspace | No |
Partial means Codex has no subagent format, and its prompts document no frontmatter, so only the body carries over. Workspace means Hermes reads rules from the project, so there is no global file to install.
Design rules
- One job per artifact.
nameanddescriptionstay portable, and any restriction is stated in the body too. - Acceptance criteria before the implementation, evidence before calling it done.
- No credentials, no pinned models, no machine specific paths.
The reasoning behind each one is in docs/authoring.md.
Any other tool that reads Agent Skills and AGENTS.md picks up the skills and the rules on its own. Point it at skills/ and at rules/global.md. The rest depends on what that tool supports.
Made with ❤️ in Curitiba 🌳 ☔️
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file ai_harness_cli-0.3.0.tar.gz.
File metadata
- Download URL: ai_harness_cli-0.3.0.tar.gz
- Upload date:
- Size: 91.6 kB
- Tags: Source
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/7.0.0 CPython/3.13.14
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
3a2b7f1ea4f685e6f815a7d38786ca554101396791da3fb83e8a636afa4b617c
|
|
| MD5 |
5db77b51b76c5d8edebea31bc464820c
|
|
| BLAKE2b-256 |
91c14bf6313a33899fc1d3682a9e89c03eb4716d4390a45a21926b8e51a7fc28
|
Provenance
The following attestation bundles were made for ai_harness_cli-0.3.0.tar.gz:
Publisher:
release.yml on Bruno-Furtado/ai-harness
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
ai_harness_cli-0.3.0.tar.gz -
Subject digest:
3a2b7f1ea4f685e6f815a7d38786ca554101396791da3fb83e8a636afa4b617c - Sigstore transparency entry: 2375271000
- Sigstore integration time:
-
Permalink:
Bruno-Furtado/ai-harness@8ea0fb534460f1bfa39d67d6830b569c45b7c323 -
Branch / Tag:
refs/tags/v0.3.0 - Owner: https://github.com/Bruno-Furtado
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
release.yml@8ea0fb534460f1bfa39d67d6830b569c45b7c323 -
Trigger Event:
push
-
Statement type:
File details
Details for the file ai_harness_cli-0.3.0-py3-none-any.whl.
File metadata
- Download URL: ai_harness_cli-0.3.0-py3-none-any.whl
- Upload date:
- Size: 108.9 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/7.0.0 CPython/3.13.14
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
e01ec2a659858189ec8e9d60961e96c7d7a79bf80f234d1f2c58955c0debdfd1
|
|
| MD5 |
0d9c30c121ff5e7bfd89612f99182214
|
|
| BLAKE2b-256 |
247ad7db781db31e25d24e9fe78c08260242f6131756c099ed12a0a5b7f8b40f
|
Provenance
The following attestation bundles were made for ai_harness_cli-0.3.0-py3-none-any.whl:
Publisher:
release.yml on Bruno-Furtado/ai-harness
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
ai_harness_cli-0.3.0-py3-none-any.whl -
Subject digest:
e01ec2a659858189ec8e9d60961e96c7d7a79bf80f234d1f2c58955c0debdfd1 - Sigstore transparency entry: 2375271177
- Sigstore integration time:
-
Permalink:
Bruno-Furtado/ai-harness@8ea0fb534460f1bfa39d67d6830b569c45b7c323 -
Branch / Tag:
refs/tags/v0.3.0 - Owner: https://github.com/Bruno-Furtado
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
release.yml@8ea0fb534460f1bfa39d67d6830b569c45b7c323 -
Trigger Event:
push
-
Statement type: