Skip to content

Commit 0d22352

Browse files
authored
Merge pull request #403 from compoundingtech/agent/claude-channel-marketplace
Package the st2 Claude channel plugin
2 parents ebe4770 + 0d34f82 commit 0d22352

15 files changed

Lines changed: 903 additions & 136 deletions

File tree

README.md

Lines changed: 15 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -34,6 +34,8 @@ st2 --help
3434
pty --help
3535
st2 hooks install
3636
st2 hooks verify
37+
st2 claude-channel install
38+
st2 claude-channel status
3739
```
3840

3941
When upgrading, deploy and activate the compatible `pty` before this version of
@@ -94,6 +96,18 @@ current inbox; pre-compact preserves a recovery breadcrumb when no context was w
9496
failure hooks surface newly arrived work or a harness failure. They fail open so hook trouble does
9597
not prevent the harness from starting or stopping.
9698

99+
`st2 claude-channel install` publishes the Claude Code marketplace and plugin embedded in the st2
100+
binary. It registers the plugin for the current user and installs one machine policy fragment with
101+
`sudo`. The policy approves the stable `st2-channel@st2` identity. The plugin starts the st2 MCP
102+
server through the managed task's `PATH`, `CATALOG`, and `ST_AGENT`; it writes no `.mcp.json` file
103+
into a product workspace. Re-running the command updates the marketplace and reinstalls the exact
104+
embedded plugin. `st2 claude-channel status` verifies all four parts. `uninstall` removes only the
105+
st2 user state and its policy fragment. Installation is optional. When the plugin is absent, the
106+
native driver passes an inline MCP declaration and uses Claude's development channel. Claude can
107+
show a confirmation prompt on that path, so install the plugin for unattended agents. Claude treats
108+
the managed plugin list as an allowlist. Administrators must include any other approved channel
109+
plugins in their managed policy.
110+
97111
The same immutable set also carries `pi-channel.ts`. pi has no hook mechanism of its own — an
98112
extension is where a pi session exposes that surface — so st2 ships one and `st2 driver pi-session`
99113
splices it into the launch from the set this binary verified. A declaration never names it, and a
@@ -604,7 +618,7 @@ st2 service uninstall
604618
ls, up, down, validate, doctor
605619
message, ding, agents, status, context, resource, rename, describe
606620
env, pty, shell, pretrust
607-
hooks, service, eval
621+
hooks, service, claude-channel, eval
608622
agent digest, agent publish
609623
catalog bootstrap, catalog snapshot, catalog apply
610624
completions
Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,15 @@
1+
{
2+
"$schema": "https://anthropic.com/claude-code/marketplace.schema.json",
3+
"name": "st2",
4+
"description": "Provider integration shipped with st2",
5+
"owner": {
6+
"name": "Compounding"
7+
},
8+
"plugins": [
9+
{
10+
"name": "st2-channel",
11+
"description": "Deliver st2 messages to a running Claude Code session",
12+
"source": "./plugins/st2-channel"
13+
}
14+
]
15+
}
Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,13 @@
1+
{
2+
"name": "st2-channel",
3+
"description": "Deliver st2 messages to a running Claude Code session",
4+
"version": "0.1.0",
5+
"author": {
6+
"name": "Compounding"
7+
},
8+
"keywords": [
9+
"st2",
10+
"channel",
11+
"mcp"
12+
]
13+
}
Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,11 @@
1+
{
2+
"mcpServers": {
3+
"st2": {
4+
"command": "st2",
5+
"args": [
6+
"driver",
7+
"claude-mcp"
8+
]
9+
}
10+
}
11+
}

0 commit comments

Comments
 (0)