Allye keeps your projects, epics, specs and tasks on the server. This plugin connects your coding agent to it:
Allye MCP (https://mcp.allye.app/mcp, OAuth 2.1) — projects, epics, specs, tasks and team tools, plus context, memory and your organization's skills.
Bridge () — a skill that designs specs with you and drives an approved spec to a reviewed branch and, with your approval, one PR, through a crew of specialized agents with security and review gates.
Allye extension for Pi and OMP: the Allye bootstrap, the Bridge skill and the repository-to-project link
2026-11-14
ดาว
—
เครื่องมือ
—
อัปไทม์
—
/bridge <mode>
Bootstrap — a short session-start note telling the agent that the MCP and Bridge are available, that the team follows the project (identified with project_resolve), and that a default team is only needed to create projects and for memory, todo and doc calls without a team_id.
Every harness uses one server named allye. Tenant selection happens during OAuth consent; the harness owns client registration, token storage and refresh.
Then open /plugin, find the Allye MCP server, click Connect and sign in. Update with /plugin update allye and /reload-plugins.
Pinned preferences at session start (Claude Code only, optional)
Pair this install with your Allye account and every new, cleared or compacted session starts with the preferences you pinned in Allye, shown to the agent as quoted data, not instructions. Pairing is a second SessionStart hook, separate from the offline bootstrap hook.
/allye:hooks pair # connects this install to your account
/allye:hooks unpair # deletes the local credential, no network call
What it does.pair creates a random secret on your machine, asks the Allye MCP (through your existing OAuth connection) for a one-time pairing code, and exchanges the code for a hook credential. It prints Paired <device> as <email> in <organization>: check that the account and organization are yours. A rule that allows every Allye MCP tool also approves the pairing call without a prompt, so that check is your only gate. If they are not yours, run unpair and revoke the device.
What leaves the machine. Only the device name, the client kind (claude-code), a challenge (a hash of the secret), the pairing code and, on each session start, the credential as an authorization header. Never repository, file, conversation or environment content.
Where the credential lives.${CLAUDE_PLUGIN_DATA}/hook-credential.json (~/.claude/plugins/data/<plugin id>/), mode 0600 in a 0700 directory. Claude Code removes it when the plugin is uninstalled from its last place. To keep the agent from reading it, add Read(~/.claude/plugins/data/allye*/hook-credential.json) (adjust to your plugin data directory) to permissions.deny in your user-level ~/.claude/settings.json.
Supported API origins.pair uses https://api.allye.app. ALLYE_API_URL is accepted only as https://api.allye.app, https://api.zeta.allye.app (HML) or http://localhost:<port> / http://127.0.0.1:<port> (local development).
Session start. The hook makes one short request and prints the preferences, or one hint line when the credential is rejected, unsafe or the account is inactive. It is silent when you are not paired, offline or the API is unavailable. It needs curl and jq.
Before uninstalling. Run /allye:hooks unpair, then revoke the device in Allye → Settings → Devices; unpair only deletes local files, so the credential keeps working on the server until revoked. Pair again before the expiry date shown at pairing.
Live session reporting (Claude Code only, optional)
When paired, hooks send Allye the state of your sessions (started, working, waiting, idle, ended), the tool names in use (within about 2 seconds of the call), subagent ids and types with their outcome, the spec and task keys the session is bound to and, on by default, a short activity phrase (at most 48 characters) taken from the description or todo the agent wrote for a Bash or Agent call or its current todo, with paths, URLs, emails, IP addresses, secrets and backticked code stripped on your machine; /allye:hooks live activity off turns the phrases off. A small background watcher (one per session, no network use while Claude Code runs) ends the run on Allye when Claude Code is closed without a normal exit. Through the Allye MCP only task_start and task_submit bind a session to a spec or task. The subagent type, tool names, activity phrases and allye:<action> / spec / task keys DO leave your machine; prompts, commands, tool inputs and outputs, file paths, notification and assistant messages, transcripts, the working directory, branch names and credentials never do. Allye keeps ended runs 7 days. Control it with /allye:hooks live off|on|status; events, fields, the watcher and local files are in docs/live-reporting.md.
Codex, OpenCode
Paste into the agent. The install and update guides install one pinned release: the latest GitHub release unless you name a version. They check that it exists, never download from a branch, and keep a timestamped backup of any config they rewrite (opencode.json, ~/.codex/AGENTS.md, ~/.codex/skills/bridge*) under ~/.allye/backups/<harness>/.
pi install npm:allye-pi@<version> # Pi
omp plugin install allye-pi@<version> # OMP
Use a pinned <version> (the guides resolve it for you). Then add the allye MCP server as described in install-pi.md or install-omp.md. In OMP, allye-pi shows one notice at session start with the exact command /mcp add allye --scope user --url https://mcp.allye.app/mcp --transport http when no allye server is found in OMP's own mcp.json files; it never writes configuration.
Your organization's skills
install.sh installs the skills your organization keeps in Allye's Skills section (per tenant and team) into a harness on your machine. It is not needed to install this plugin.
export ALLYE_PAT=pat_... # Allye → Settings → API
./install.sh list --scope team # approved skills you can see
./install.sh install claude team-standards # claude | codex | opencode | pi | omp
./install.sh install claude team-standards --reinstall # replace an edited copy (kept as a backup)
./install.sh status # offline integrity check
Each install downloads the skill's approved release, verifies every file and the canonical hash, opens a distribution for this machine, verifies the API-signed execution token, publishes the files into the harness's user skills directory with a provenance sidecar, and records the result on the API. The API decides which runtimes may receive skills; the installer reports its decision rather than working around it. Requires bash, curl, jq and Node.js 18+. The installer speaks compatibility contract 1.1.0.
Until the allye-api PROD release that supports contract 1.1.0, the installer works only against HML (ALLYE_API_URL pointing at the HML API). Against PROD it fails with 409 RUNTIME_INCOMPATIBLE or an execution-context error about a missing signing key, and changes nothing.
Who can install, where skills go, how edited, deleted and moved copies are handled, and the API errors are in docs/org-skills.md.
Repository layout
bootstrap/allye.md shared bootstrap text (single source)
skills/bridge/ the Bridge skill and its references
skills/bridge-*/ the crew skills (Armorer, Recon, Strategist, Architect, Dispatcher, Pilot, Navigator, Copilot, Medic, Optimizer, Shield, Watcher)
agents/bridge-*.md native crew subagents (Claude Code; OpenCode registers them from here): load the crew skill under a per-role tool allowlist
hooks/ Claude Code hooks (bootstrap, pinned preferences, Live reporter) and the script behind /allye:hooks
.claude-plugin/, .mcp.json Claude Code plugin and marketplace manifests
manifests/ Codex copy of the bootstrap (codex/AGENTS.md, synced) and a sample OpenCode config (opencode/)
packages/allye-opencode/ OpenCode plugin (npm: allye-opencode)
packages/allye-pi/ Pi/OMP extension (npm: allye-pi, root package.json)
install.sh, install/ organization skills installer and its tests
scripts/sync-bootstrap.sh copies the bootstrap to manifests/codex/AGENTS.md
docs/ per-harness install and update guides, organization skills details
Development
npm install
npm test # bootstrap, hooks (npm run test:hooks), crew agents, skills, installer and docs gate, Pi and OpenCode tests (offline)
npm run typecheck # Pi extension
cd packages/allye-opencode && bun install && bun run typecheck && bun run build
After editing bootstrap/allye.md, run scripts/sync-bootstrap.sh.
Releases
Releases are automated by semantic-release on every push to main (Conventional Commits). It bumps the version in .claude-plugin/plugin.json, .claude-plugin/marketplace.json, packages/allye-opencode/package.json, package.json and package-lock.json, updates CHANGELOG.md, tags and creates the GitHub release. CI then publishes allye-opencode and allye-pi to npm when their version changed. ./release.sh [major|minor|patch] is the manual fallback.