Auwai

Harness plugins

Auwai ships one generated plugin architecture for Claude Code, Codex, Hermes, and OpenCode. The capability contract is extensions/plugin_common/capabilities.json; the bundles are generated by make plugins from the shared skill, commands, agent, hook policy, and MCP server. Host adapters only translate file names and lifecycle payloads.

The knowledge service is the default workflow for every plugin: pull shared facts before planning and sync findings and coverage after reading.

Architecture

The host bundles differ in file layout and lifecycle hooks. They share the skill, command text, agent text, MCP tools, hook decisions, and capability contract.

Capability Claude Code Codex Hermes OpenCode
Version 1.0.0 1.0.0 1.0.0 1.0.0
Skill yes yes yes yes
Commands yes yes yes yes
Reader agent yes yes yes yes
MCP tools yes yes yes yes
Session nudge yes yes yes yes
Raw-read guard yes yes yes yes
Stop sync yes yes yes yes
Knowledge default yes yes yes yes
Install claude plugin install auwai@auwai-native codex plugin add auwai@auwai-native scripts/install_plugin.py --harness hermes scripts/install_plugin.py --harness opencode

Contract version: 1.0.0. MCP tools: 17. Required features: 10.

What "identical" means

All four bundles contain:

Host-specific install layout and UI may differ. Behavior may not.

Install

The unified installer supports --scope user|project, --check, --remove, and --dry-run:

python3 scripts/install_plugin.py --harness claude --scope user --dry-run
python3 scripts/install_plugin.py --harness codex --scope user
python3 scripts/install_plugin.py --harness hermes --scope user
python3 scripts/install_plugin.py --harness opencode --scope project

Claude Code and Codex delegate to their plugin CLIs and use the local marketplace in this repository. Their plugin managers install at user scope, so pass --scope user; the installer rejects project scope for those two hosts. Hermes copies the native plugin and registers the MCP server. OpenCode copies the plugin directory, skill, commands, and agent into .opencode, then registers the MCP server.

Hook trust and enforcement

Claude Code loads the plugin hook automatically.

Codex requires plugin hooks to be reviewed and trusted. Open /hooks, review the Auwai hook source, and trust it. Until then Codex skips the hook; this is a host trust policy, not an advisory-only guard. The hook path is hooks/hooks.json, which Codex 0.166 discovers for enabled plugins.

Hermes uses the native plugin in interactive and gateway sessions and the shell hook bridge in one-shot mode. The bridge installs pre_tool_call, pre_llm_call, and post_llm_call hooks.

OpenCode loads auwai-guard.js through its V2 plugin API. It translates tool.execute.before, prompt admission, and session idle events into the same shared Python hook used by the other hosts.

Knowledge service default

Set the service in the project or user config:

[knowledge]
mode = "team"
url = "http://127.0.0.1:8765"
repo_id = "github.com/acme/telemetry"
token_env = "AUWAI_KNOWLEDGE_TOKEN"

The skill instructs the agent to run:

auwai sync --pull
# route, plan, begin, read
auwai sync

Claude Code

claude plugin validate extensions/claude-code/plugins/auwai --strict
claude plugin marketplace add "$PWD/extensions/claude-code"
claude plugin install auwai@auwai-native

Codex

codex plugin marketplace add "$PWD/extensions/codex"
codex plugin add auwai@auwai-native
codex plugin list
codex mcp list

Hermes

The native plugin and the shell-hook bridge are documented in extensions/hermes/auwai-hermes/README.md. In one-shot mode, install the shell hooks; in interactive and gateway sessions, the native plugin is loaded.

OpenCode

The plugin, MCP installer, and guard are documented in extensions/opencode/README.md. The same shared bundle includes the skill, commands, and reader agent.

Model endpoints

The plugin surfaces are independent of the model endpoint. Claude Code needs an Anthropic-compatible endpoint; Codex needs the Responses API; OpenCode supports OpenAI-compatible and Anthropic-compatible endpoints; Hermes supports its configured providers. A local model server is enough for development. See local benchmark replication.