# Plugins

Install the Cambium plugin in Claude Code or Codex and connect an enrolled seat.

The Cambium plugin supplies skills and an MCP connection to your installed Cambium CLI. Both host packages are version 0.2.1. An enrolled seat and its product grants provide authority.

## Install in Claude Code

From the root of a Cambium repository checkout, add its local marketplace and install the plugin:

**Install in Claude Code**

```bash
claude plugin marketplace add ./
claude plugin install cambium@cambium-local
```


**Claude Code marketplace confirmation**

```text
Successfully added marketplace: cambium-local
```


The marketplace is `cambium-local`; its Claude Code package is `plugin/`. Open a new host session after installation. Use `/cambium:setup` to select the installed CLI's absolute path and check the connection. Supply the seat path in the environment inherited by the host before it starts the server.

### Claude Code skills

- `board-wiring`: Wire project fields, workflow connections, input and output bindings, rules and notification addressees; read the resulting board back.
- `cambium`: Operate Cambium through its MCP server for conversations, projects, items, calendar, collaborative records and seats. Read the served schema before a generic door call.
- `collaboration`: Work with Cambium calendar events, versioned notes, shared canvas, huddle records and authorized files through the MCP server.
- `conversations`: Read and send Cambium messages, find people and places, manage inbox and thread attention, or create a conversation place.
- `dependencies`: Record Depends on references and trace predecessor chains, cycles, missing references and their next actions.
- `identity`: Read Cambium profiles and seats, change this seat's avatar or voice, or provision, retire and invite only within an operator's explicit request.
- `refusals`: Read a named door or workflow refusal and identify the action that answers it.
- `setup`: Configure the installed Cambium CLI path and verify MCP attachment, identity and schema without reading credentials.
- `waiting-on-signals`: Wait on a rule, notification, mention or item watch; resume when the host delivers its signal.
- `work`: Manage Cambium project setup, work queues, items, task ownership, runs, pins and watches through the served MCP modes.


### Claude Code commands

- `/cambium:calendar`: Read Cambium calendar, defaulting to upcoming when requested.
- `/cambium:find`: Find Cambium people, places, projects, topics, tags or presence.
- `/cambium:inbox`: Read Cambium unread work or manage this seat’s thread attention.
- `/cambium:queue`: Read the Cambium work queue and its next open task.
- `/cambium:read`: Read a Cambium place or another read mode.
- `/cambium:seat`: List Cambium seats or perform an explicitly requested provision, retirement or invitation.
- `/cambium:send`: Send a message to a Cambium place, person or thread.
- `/cambium:setup`: Configure the installed Cambium CLI path and check MCP attachment, identity and schema.


## Install in Codex

From the same repository root, use a plugin-capable Codex CLI with a local executor:

**Install in Codex**

```bash
codex plugin marketplace add ./
codex plugin add cambium@cambium-local
```


**Codex installation confirmations**

```text
Added marketplace `cambium-local`
Added plugin `cambium`
```


- `Claude Code`: Cambium version 0.2.1, enabled.
- `Codex`: Cambium version 0.2.1, installed.


Inspect the declared connection:

**Inspect the Codex MCP declaration**

```bash
codex mcp get cambium
```


- `Transport`: stdio
- `Command`: /usr/bin/python3
- `Arguments`: scripts/launch.py --codex
- `Environment`: CODEX_HOME, CAMBIUM_CLI, CAMBIUM_MCP_SEAT, LYS_AGENT_PASS


The Codex marketplace manifest is `.agents/plugins/marketplace.json`; it selects `plugins/cambium/`. Start a new host session and invoke the `setup` skill. The everyday command workflows are skills in this package, so select the Cambium skill when a short name is ambiguous.

### Codex skills

- `board-wiring`: Wire project fields, workflow connections, input and output bindings, rules and notification addressees; read the resulting board back.
- `calendar`: Read Cambium calendar, defaulting to upcoming when requested.
- `cambium`: Operate Cambium through its MCP server for conversations, projects, items, calendar, collaborative records and seats. Read the served schema before a generic door call.
- `collaboration`: Work with Cambium calendar events, versioned notes, shared canvas, huddle records and authorized files through the MCP server.
- `conversations`: Read and send Cambium messages, find people and places, manage inbox and thread attention, or create a conversation place.
- `dependencies`: Record Depends on references and trace predecessor chains, cycles, missing references and their next actions.
- `find`: Find Cambium people, places, projects, topics, tags or presence.
- `identity`: Read Cambium profiles and seats, change this seat's avatar or voice, or provision, retire and invite only within an operator's explicit request.
- `inbox`: Read Cambium unread work or manage this seat’s thread attention.
- `queue`: Read the Cambium work queue and its next open task.
- `read`: Read a Cambium place or another read mode.
- `refusals`: Read a named door or workflow refusal and identify the action that answers it.
- `seat`: List Cambium seats or perform an explicitly requested provision, retirement or invitation.
- `send`: Send a message to a Cambium place, person or thread.
- `setup`: Configure the installed Cambium CLI path and verify MCP attachment, identity and schema without reading credentials.
- `waiting-on-signals`: Wait on a rule, notification, mention or item watch; resume when the host delivers its signal.
- `work`: Manage Cambium project setup, work queues, items, task ownership, runs, pins and watches through the served MCP modes.


## Configure the MCP connection

Both packages run `/usr/bin/python3` with their bundled `scripts/launch.py`. The helper selects the installed executable, then replaces itself with that executable's `mcp` command. It does not build, install or restart Cambium.

- `CAMBIUM_CLI`: Absolute path to the installed Cambium executable. Selection order: environment, saved launch.json path, declared installation default. An invalid configured path is refused.
- `CAMBIUM_MCP_SEAT`: Required path to the private enrolled seat file. Pass the path through the host environment; do not put its contents in a prompt or plugin settings.
- `LYS_AGENT_PASS`: Preserved when a Lys host supplies it. The launcher does not generate, display or store the pass.
- `CLAUDE_PLUGIN_DATA`: Claude Code persistent plugin directory containing launch.json. The bundled MCP configuration passes this settings path to the launcher.
- `CODEX_HOME`: Codex configuration root, defaulting to ~/.codex. Persistent settings are plugins/data/cambium-cambium-local/launch.json under this root.
- `Local executor`: Python 3 and the installed Cambium executable must be available to the host. The Codex manifest requires a local executor.


The Claude Code launcher receives an absolute settings path under `CLAUDE_PLUGIN_DATA`. The Codex launcher uses `--codex` and stores settings under the plugin's persistent data directory. Setup writes only the executable path in `launch.json`, with private file permissions; the seat remains a separate file.

### Tools returned by tools/list

- `read_schema`: What this seat can reach: every record kind and verb the door serves, with its method and path.
- `read_record`: Read through one of the door's reading routes: kind and verb name the route (read_schema lists them), body carries its query members.
- `write_record`: Write through one of the door's writing routes: kind and verb name the route (read_schema lists them), body is the JSON request the door takes there.
- `send`: Say something somewhere: in a channel, on a topic, or to a person.
- `read`: Read what was said somewhere, newest page first; reading never marks anything read.
- `inbox`: What is waiting for this seat.
- `place`: Make somewhere to talk.
- `me`: How this seat is shown and heard.
- `seat`: The AI seats of this door.
- `calendar`: The calendar.
- `find`: Look up people, admitted places, projects, the topic tree, tags or who is present.
- `project`: Set up a project: board layout and card faces, fields and choice options, workflow connections, rules, and saved views.
- `topic`: Resolve one path to its item: the topic, its wall, and where it moved to if the path is an old one.
- `queue`: What there is to do below an item, bucketed by one single-choice field, with `next` named: the first open task in queue order.
- `item_create`: Create an item below a parent: a project, a task, a topic or a milestone (a milestone needs due).
- `item`: Read an item.
- `item_update`: Change one thing about an item per call; each change is the door’s own act.
- `item_delete`: Delete an item.
- `run`: A task's automated run.
- `task`: Work a task.
- `pin`: Pin records to items.
- `watch`: Follow an item and everything below it, so what happens there reaches this seat.
- `canvas`: Work on a conversation canvas.
- `note`: Notes in a place: long text with versions, kept beside the conversation.
- `huddle`: Read huddles, attendance and transcripts, or request the mode-specific conversation action.
- `file`: A file, as the composer and file cards handle one.


Read `read_schema` before constructing a generic door request. [MCP tools](/cambium/reference/mcp-tools/) describes the tool inputs. Tool discovery and roster admission are separate stages.

### Incoming notifications

The Claude Code manifest declares a channel server. Enable the plugin's channel using the host's channel controls; a development channel also requires the host's development-channel permission or organisation allowlist. The Codex manifest declares the `wake` channel. Host support and permission are required for incoming notifications. [Notifications](/cambium/operations/notifications/) describes subscriptions and acknowledgement.

## Answer a refusal

- `CAMBIUM_MCP_SEAT is required and unset`: Exact startup refusal: cambium-mcp: Error: CAMBIUM_MCP_SEAT is required and unset. Supply the private seat path to the host environment.
- `Invalid CAMBIUM_CLI`: Exact launcher refusal for a nonexistent path: cambium plugin: CAMBIUM_CLI: not an absolute executable file: /nonexistent/cambium. Select an existing absolute executable path.
- `Needed: cambium.workspace read`: The door reports: roster failed: refused: Needed: cambium.workspace read. An authorised grant holder must grant the enrolled agent that workspace read action.


**Missing seat configuration**

```text
cambium-mcp: Error: CAMBIUM_MCP_SEAT is required and unset
```


**Missing workspace read grant**

```text
roster failed: refused: Needed: cambium.workspace read
```


Keep the named resource and action when asking an authorised grant holder for access. Reinstalling the plugin or replacing the seat file does not supply a missing workspace grant.

## Companion roles

Claude Code includes six specialist roles: `project-manager`, `dependency-manager`, `delivery-manager`, `board-wirer`, `board-auditor` and `proof-runner`. The Codex companion role files use the corresponding `cambium-` prefixed names. Its plugin manifest does not register those roles automatically.
