allye-pi 1.7.1 → 1.8.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +32 -73
- package/docs/install-pi.md +52 -44
- package/package.json +3 -2
- package/skills/setup/SKILL.md +71 -70
- package/skills/tools-quickref/SKILL.md +2 -3
package/README.md
CHANGED
|
@@ -36,30 +36,28 @@ Your AI agent has **68+ tools** but no idea when to use them. Allye adds the met
|
|
|
36
36
|
| **Skills** | Dynamic discovery | Agents find and follow your team's standards automatically — no manual config |
|
|
37
37
|
| **Standards** | Guided creation | No team standards? Agent suggests creating them with your chosen scope |
|
|
38
38
|
| **Boards** | Status progression | Correct transitions: backlog → todo → in_progress → review → done |
|
|
39
|
-
| **Context** |
|
|
39
|
+
| **Context** | On-demand profile | Agents load user context, team info, and preferences through the authenticated `allye` MCP tools |
|
|
40
40
|
| **Language** | Multi-language | Agent responds in your language — configs are English, conversations are yours |
|
|
41
41
|
|
|
42
42
|
---
|
|
43
43
|
|
|
44
44
|
## Installation
|
|
45
45
|
|
|
46
|
-
###
|
|
46
|
+
### Repository installer boundary
|
|
47
47
|
|
|
48
|
-
The
|
|
48
|
+
The repository includes config-shape adapters and distribution verification, but
|
|
49
|
+
shared runtime writes are currently fail-closed unless an API-backed ownership
|
|
50
|
+
operation authorizes them. Physical uninstall is also blocked. Use the native
|
|
51
|
+
platform procedures below; `./install.sh status` is safe for local inspection.
|
|
49
52
|
|
|
50
53
|
```bash
|
|
51
54
|
git clone https://github.com/allye-app/allye-plugin.git
|
|
52
55
|
cd allye-plugin
|
|
53
|
-
./install.sh
|
|
54
|
-
./install.sh status # what is installed, and at which version
|
|
55
|
-
./install.sh install hermes
|
|
56
|
-
./install.sh install pi
|
|
57
|
-
./install.sh uninstall hermes
|
|
56
|
+
./install.sh status
|
|
58
57
|
```
|
|
59
58
|
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
Prefer the paste-into-agent or marketplace routes below? They still work — the unified installer doesn't replace them for Claude Code, OpenCode, Cursor, Codex, or Gemini CLI.
|
|
59
|
+
A blocked `./install.sh install ...` or `./install.sh uninstall ...` result means
|
|
60
|
+
no shared configuration was changed. It is not installation or cleanup success.
|
|
63
61
|
|
|
64
62
|
### Claude Code
|
|
65
63
|
|
|
@@ -73,7 +71,7 @@ Prefer the paste-into-agent or marketplace routes below? They still work — the
|
|
|
73
71
|
**Step 2 — Authenticate:**
|
|
74
72
|
1. Run `/plugin` to open the plugin panel
|
|
75
73
|
2. Find **Allye MCP Server** and click **Connect**
|
|
76
|
-
3. Your browser opens for OAuth login — sign in with your Allye account, select a
|
|
74
|
+
3. Your browser opens for OAuth login — sign in with your Allye account, select a tenant, and approve
|
|
77
75
|
4. Done! The MCP server connects automatically
|
|
78
76
|
|
|
79
77
|
> Authentication is handled via OAuth 2.1 — your browser opens once, and tokens are cached automatically.
|
|
@@ -85,19 +83,12 @@ After installing, you get:
|
|
|
85
83
|
- **17 composable skills** — discovery, planning, execution, review, delivery, memory, verification, and delegation playbooks loaded as needed; no universal phase chain is required
|
|
86
84
|
- **Parallel delivery, when a runtime is detected** — the Orchestrator can drive several independent stories at once, each in its own git worktree and its own watchable agent process; without a detected runtime, delivery degrades to the existing manual and automatic-subagent modes
|
|
87
85
|
|
|
88
|
-
####
|
|
89
|
-
|
|
90
|
-
If you use different Allye accounts in different projects (e.g., personal account in `~/dev/myproject` and work account in `~/dev/company`), install the plugin with the **"local" scope** (per-project). Each project directory automatically gets its own OAuth session — no extra configuration needed.
|
|
91
|
-
|
|
92
|
-
1. Open Claude Code in each project directory
|
|
93
|
-
2. Install with local scope: `/plugin install allye` (select "local" when prompted)
|
|
94
|
-
3. Run `/reload-plugins`
|
|
95
|
-
4. Go to `/plugin` → **Connect** on the Allye MCP Server
|
|
96
|
-
5. Log in with the Allye account you want for that project
|
|
97
|
-
|
|
98
|
-
The plugin automatically generates a unique identifier per project directory, so each project authenticates independently. You can use a different Allye account in each project without conflicts.
|
|
86
|
+
#### Tenant selection
|
|
99
87
|
|
|
100
|
-
|
|
88
|
+
Every project uses the same `allye` server URL:
|
|
89
|
+
`https://mcp.allye.app/mcp`. Choose the tenant during OAuth consent. Separate
|
|
90
|
+
authorizations create independent grants without encoding a tenant or account in
|
|
91
|
+
the URL.
|
|
101
92
|
|
|
102
93
|
**To update:** `/plugin update allye` then `/reload-plugins`
|
|
103
94
|
|
|
@@ -147,7 +138,7 @@ Install allye-plugin following: https://raw.githubusercontent.com/allye-app/ally
|
|
|
147
138
|
```
|
|
148
139
|
|
|
149
140
|
After installing:
|
|
150
|
-
-
|
|
141
|
+
- **`allye` MCP server** at `https://mcp.allye.app/mcp`, authenticated by Codex's native OAuth flow
|
|
151
142
|
- **`AGENTS.md`** installed with workflow instructions
|
|
152
143
|
|
|
153
144
|
**To update:** Paste this into your agent:
|
|
@@ -175,54 +166,25 @@ Update allye-plugin following: https://raw.githubusercontent.com/allye-app/allye
|
|
|
175
166
|
### Pi
|
|
176
167
|
|
|
177
168
|
Pi uses the published native package `allye-pi`, while keeping
|
|
178
|
-
`skills/*/SKILL.md` as the only canonical skill source.
|
|
179
|
-
|
|
180
|
-
`settings.json` or MCP configuration:
|
|
181
|
-
|
|
182
|
-
```bash
|
|
183
|
-
./install.sh install pi # production: npm:allye-pi
|
|
184
|
-
./install.sh uninstall pi # removes npm:allye-pi
|
|
185
|
-
```
|
|
186
|
-
|
|
187
|
-
Other official Pi sources are available when you choose them explicitly:
|
|
169
|
+
`skills/*/SKILL.md` as the only canonical skill source. Install through Pi's
|
|
170
|
+
package manager:
|
|
188
171
|
|
|
189
172
|
```bash
|
|
190
173
|
pi install npm:allye-pi
|
|
191
|
-
pi install git:github.com/allye-app/allye-plugin
|
|
192
|
-
ALLYE_PI_INSTALL_SOURCE=local ./install.sh install pi # checkout development only
|
|
193
174
|
```
|
|
194
175
|
|
|
195
|
-
|
|
196
|
-
|
|
197
|
-
|
|
198
|
-
|
|
176
|
+
Configure one `allye` server at `https://mcp.allye.app/mcp` in the effective
|
|
177
|
+
pi-mcp-adapter source, then run `/mcp-auth allye` and `/mcp reconnect allye`.
|
|
178
|
+
The package and repository installer do not edit Pi's MCP configuration. See
|
|
179
|
+
[`docs/install-pi.md`](docs/install-pi.md) for source selection, authentication,
|
|
180
|
+
and the installer boundary.
|
|
199
181
|
|
|
200
182
|
### Hermes Agent
|
|
201
183
|
|
|
202
|
-
|
|
203
|
-
|
|
204
|
-
|
|
205
|
-
|
|
206
|
-
```
|
|
207
|
-
|
|
208
|
-
After installing:
|
|
209
|
-
- **MCP server** configured in `~/.hermes/config.yaml` (OAuth needs a terminal — see [`docs/install-hermes.md`](docs/install-hermes.md))
|
|
210
|
-
- **16 skills** exported to `~/.hermes/skills/allye/` — Hermes reads skills from disk, not over MCP
|
|
211
|
-
- **`allye-bootstrap` plugin** installed and enabled — injects `using-allye` at session start
|
|
212
|
-
|
|
213
|
-
**To update:** `cd allye-plugin && git pull && ./install.sh install hermes`
|
|
214
|
-
|
|
215
|
-
### Manual (all agents)
|
|
216
|
-
|
|
217
|
-
```bash
|
|
218
|
-
git clone https://github.com/allye-app/allye-plugin.git
|
|
219
|
-
cd allye-plugin
|
|
220
|
-
./install.sh
|
|
221
|
-
```
|
|
222
|
-
|
|
223
|
-
Auto-detects every installed agent and configures each one — MCP for agents that fetch skills over it, skills-on-disk for Hermes.
|
|
224
|
-
|
|
225
|
-
**To update:** `cd allye-plugin && git pull && ./install.sh`
|
|
184
|
+
Follow [`docs/install-hermes.md`](docs/install-hermes.md) for its native package
|
|
185
|
+
and OAuth procedure. The repository installer preserves its fail-closed
|
|
186
|
+
ownership boundary and must not be described as a general-purpose config writer
|
|
187
|
+
or cleanup command.
|
|
226
188
|
|
|
227
189
|
---
|
|
228
190
|
|
|
@@ -245,13 +207,10 @@ Paste this into your agent's chat:
|
|
|
245
207
|
| Cursor | `Update allye-plugin following: https://raw.githubusercontent.com/allye-app/allye-plugin/main/docs/update-cursor.md` |
|
|
246
208
|
| Codex | `Update allye-plugin following: https://raw.githubusercontent.com/allye-app/allye-plugin/main/docs/update-codex.md` |
|
|
247
209
|
| Gemini CLI | `Update allye-plugin following: https://raw.githubusercontent.com/allye-app/allye-plugin/main/docs/update-gemini.md` |
|
|
248
|
-
| Hermes Agent | see [`docs/update-hermes.md`](docs/update-hermes.md)
|
|
210
|
+
| Hermes Agent | see [`docs/update-hermes.md`](docs/update-hermes.md) for the native update procedure |
|
|
249
211
|
|
|
250
|
-
|
|
251
|
-
|
|
252
|
-
```bash
|
|
253
|
-
cd allye-plugin && git pull && ./install.sh
|
|
254
|
-
```
|
|
212
|
+
The repository's `install.sh` remains an inspection and API-authorized
|
|
213
|
+
distribution boundary; it does not replace these native updates.
|
|
255
214
|
|
|
256
215
|
---
|
|
257
216
|
|
|
@@ -269,7 +228,7 @@ Every phase, on every platform:
|
|
|
269
228
|
- Responds in **your language** (detected from your messages, falling back to your profile only before you've said anything)
|
|
270
229
|
- Calls `initialize` to load your profile and team context
|
|
271
230
|
- **Discovers team skills** before starting — coding standards, templates, checklists
|
|
272
|
-
- If no standards found → **suggests creating them** with your chosen scope (personal/team/organization).
|
|
231
|
+
- If no standards found → **suggests creating them** with your chosen scope (personal/team/organization). The internal library is the only Skills source.
|
|
273
232
|
- Searches memories for past decisions and session state
|
|
274
233
|
- Saves session state before ending
|
|
275
234
|
|
|
@@ -310,7 +269,7 @@ Once an epic's whole status cascade completes, the Orchestrator offers — never
|
|
|
310
269
|
|
|
311
270
|
## Skills
|
|
312
271
|
|
|
313
|
-
Skills are the knowledge base that powers the agents.
|
|
272
|
+
Skills are the internal knowledge base that powers the agents. Workflow skills ship with the installed package and are available through the internal Skills library.
|
|
314
273
|
|
|
315
274
|
| Skill | What it teaches |
|
|
316
275
|
|-------|----------------|
|
package/docs/install-pi.md
CHANGED
|
@@ -1,7 +1,11 @@
|
|
|
1
1
|
# Install Allye for Pi
|
|
2
2
|
|
|
3
|
-
The Pi adapter is a thin native Pi package.
|
|
4
|
-
|
|
3
|
+
The Pi adapter is a thin native Pi package. Installation/configuration is not
|
|
4
|
+
API authorization, release approval, publication, or distribution success. Official
|
|
5
|
+
distribution consumes only the API-authorized immutable release identity
|
|
6
|
+
(`skill_id`, `release_id`, `version`, canonical SHA-256 hash, and supplied origin); a revoked or
|
|
7
|
+
otherwise ineligible release remains blocked until the API returns matching physical
|
|
8
|
+
runtime evidence. It does not copy workflow skills or replace Pi's MCP configuration:
|
|
5
9
|
|
|
6
10
|
- `skills/*/SKILL.md` in this repository remains the canonical skill source;
|
|
7
11
|
- the adapter exposes that directory through Pi's `resources_discover` event;
|
|
@@ -9,70 +13,74 @@ replace Pi's MCP configuration:
|
|
|
9
13
|
MCP server via `pi-mcp-adapter`;
|
|
10
14
|
- Herdr is exposed as an optional capability when the Pi session provides `HERDR_ENV=1`.
|
|
11
15
|
|
|
12
|
-
##
|
|
16
|
+
## Package sources and installer boundary
|
|
13
17
|
|
|
14
|
-
|
|
18
|
+
Install the production package through Pi's native package manager:
|
|
15
19
|
|
|
16
20
|
```text
|
|
17
|
-
./install.sh install pi
|
|
18
|
-
# equivalent to:
|
|
19
21
|
pi install npm:allye-pi
|
|
20
|
-
|
|
21
|
-
./install.sh uninstall pi
|
|
22
|
-
# equivalent to:
|
|
23
|
-
pi remove npm:allye-pi
|
|
24
22
|
```
|
|
25
23
|
|
|
26
|
-
|
|
27
|
-
manager. It never edits `~/.pi/agent/settings.json` manually and the default
|
|
28
|
-
source is always the published npm package. Restart Pi (or run `/reload`) after
|
|
29
|
-
installation.
|
|
24
|
+
Use Git only when the repository source is intentional, preferably at a tag:
|
|
30
25
|
|
|
31
|
-
|
|
26
|
+
```text
|
|
27
|
+
pi install git:github.com/allye-app/allye-plugin
|
|
28
|
+
```
|
|
32
29
|
|
|
33
|
-
|
|
34
|
-
at a tag for reproducibility:
|
|
30
|
+
For development against a local checkout:
|
|
35
31
|
|
|
36
32
|
```text
|
|
37
|
-
pi install
|
|
38
|
-
pi remove git:github.com/allye-app/allye-plugin
|
|
33
|
+
pi install /absolute/path/to/allye-plugin
|
|
39
34
|
```
|
|
40
35
|
|
|
41
|
-
|
|
42
|
-
|
|
36
|
+
Pi owns package persistence and runtime dependencies. Removing the package with
|
|
37
|
+
`pi remove <the-exact-source>` is a separate, intentional operation; it does not
|
|
38
|
+
remove MCP configuration or OAuth credentials.
|
|
39
|
+
|
|
40
|
+
The repository's `./install.sh install pi` path is fail-closed for shared
|
|
41
|
+
runtime configuration unless an API-backed ownership operation authorizes it,
|
|
42
|
+
and `./install.sh uninstall pi` does not perform physical removal. Use
|
|
43
|
+
`./install.sh status` for inspection; do not describe a blocked installer result
|
|
44
|
+
as installation or cleanup success.
|
|
45
|
+
|
|
46
|
+
## Configure the canonical MCP server
|
|
47
|
+
|
|
48
|
+
The package never edits Pi's MCP files. Use the effective source displayed by
|
|
49
|
+
`/mcp`: project `.mcp.json` or `.pi/mcp.json`,
|
|
50
|
+
`~/.config/mcp/mcp.json`, `~/.agents/mcp.json`,
|
|
51
|
+
`~/.agents/mcp/mcp.json`, `~/.pi/agent/mcp.json`, or
|
|
52
|
+
`$PI_CODING_AGENT_DIR/mcp.json` when that override is set.
|
|
53
|
+
|
|
54
|
+
Define exactly one server named `allye`:
|
|
55
|
+
|
|
56
|
+
```json
|
|
57
|
+
{
|
|
58
|
+
"allye": {
|
|
59
|
+
"type": "http",
|
|
60
|
+
"url": "https://mcp.allye.app/mcp"
|
|
61
|
+
}
|
|
62
|
+
}
|
|
63
|
+
```
|
|
43
64
|
|
|
44
|
-
|
|
65
|
+
The effective pi-mcp-adapter source may wrap entries under `mcpServers`; preserve
|
|
66
|
+
its existing shape and every unrelated server. Do not add authorization headers
|
|
67
|
+
or fixed OAuth client metadata.
|
|
45
68
|
|
|
46
|
-
|
|
47
|
-
production install cannot accidentally load uncommitted code:
|
|
69
|
+
Authenticate and connect through the adapter:
|
|
48
70
|
|
|
49
71
|
```text
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
ALLYE_PI_INSTALL_SOURCE=local ./install.sh uninstall pi
|
|
72
|
+
/mcp-auth allye
|
|
73
|
+
/mcp reconnect allye
|
|
53
74
|
```
|
|
54
75
|
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
canonical skill tree.
|
|
59
|
-
|
|
60
|
-
The installer deliberately does **not** edit any MCP file. Relative project
|
|
61
|
-
paths are resolved from the installer `PWD`, or from `ALLYE_PI_PROJECT_DIR` when
|
|
62
|
-
installing for a different project. Configure Allye in
|
|
63
|
-
one of the sources supported by `pi-mcp-adapter`: project `.mcp.json` or
|
|
64
|
-
`.pi/mcp.json`, `~/.config/mcp/mcp.json`, `~/.agents/mcp.json`, `~/.agents/mcp/mcp.json`, or
|
|
65
|
-
`~/.pi/agent/mcp.json` (or `$PI_CODING_AGENT_DIR/mcp.json` when that Pi
|
|
66
|
-
override is set). For example, use an
|
|
67
|
-
`allye` server pointing to `https://mcp.allye.app/mcp/<tenant-slug>`.
|
|
68
|
-
Authenticate with `/mcp-auth allye` when required. Existing MCP servers are
|
|
69
|
-
preserved. `./install.sh install pi` reports the first supported source that
|
|
70
|
-
already contains Allye and warns only when none does.
|
|
76
|
+
Use `/reload` after changing the effective config. `/mcp logout allye` clears
|
|
77
|
+
only Allye's native credential when an intentional reconnection is needed; it
|
|
78
|
+
does not edit or remove the server entry.
|
|
71
79
|
|
|
72
80
|
Both npm and Git packages use the root Pi manifest and let Pi install
|
|
73
81
|
`pi-mcp-adapter` as a runtime dependency. The npm tarball contains the adapter
|
|
74
82
|
source, canonical `skills/` directory, and Pi documentation; it is not the full
|
|
75
|
-
plugin checkout and is not
|
|
83
|
+
plugin checkout and is not an installer input.
|
|
76
84
|
|
|
77
85
|
## Adaptive toolkit
|
|
78
86
|
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "allye-pi",
|
|
3
|
-
"version": "1.
|
|
3
|
+
"version": "1.8.0",
|
|
4
4
|
"description": "Pi package adapter for the canonical Allye workflow",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"keywords": [
|
|
@@ -39,7 +39,8 @@
|
|
|
39
39
|
"scripts": {
|
|
40
40
|
"typecheck": "tsc --noEmit -p packages/allye-pi/tsconfig.json",
|
|
41
41
|
"test:pi": "node --experimental-strip-types --test packages/allye-pi/src/index.test.ts",
|
|
42
|
-
"test:
|
|
42
|
+
"test:adapters": "node --experimental-strip-types --test packages/allye-pi/src/runtime-adapters.test.ts",
|
|
43
|
+
"test:installer": "bash install/test-validation.sh && bash install/test-pi.sh && bash install/test-installer.sh && bash install/test-multi-runtime-distribution.sh && bash install/test-pi-distribution-http.sh && bash install/test-claude-distribution.sh"
|
|
43
44
|
},
|
|
44
45
|
"repository": {
|
|
45
46
|
"type": "git",
|
package/skills/setup/SKILL.md
CHANGED
|
@@ -1,103 +1,103 @@
|
|
|
1
1
|
---
|
|
2
2
|
name: setup
|
|
3
3
|
description: First-time setup for the Allye plugin. Uses OAuth for ALL platforms — no PAT.
|
|
4
|
-
version: "1.
|
|
4
|
+
version: "1.3"
|
|
5
5
|
category: bootstrap
|
|
6
6
|
---
|
|
7
7
|
|
|
8
8
|
# Allye Setup
|
|
9
9
|
|
|
10
10
|
<EXTREMELY_IMPORTANT>
|
|
11
|
-
## Allye
|
|
11
|
+
## Allye MCP always uses native OAuth
|
|
12
12
|
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
**NEVER ask the user for a PAT. NEVER mention PAT as an option.**
|
|
13
|
+
Configure one remote server named `allye` at `https://mcp.allye.app/mcp`. Let the
|
|
14
|
+
host runtime perform discovery, dynamic client registration, authorization-code
|
|
15
|
+
exchange, token storage, and refresh. Static bearer headers, PATs, fixed client
|
|
16
|
+
IDs, tenant-specific URLs, and external login helpers are not part of setup.
|
|
19
17
|
</EXTREMELY_IMPORTANT>
|
|
20
18
|
|
|
21
|
-
## Step 1: Detect
|
|
22
|
-
|
|
23
|
-
Check which platform/agent is running. You can infer this from:
|
|
24
|
-
- The environment (Claude Code has `CLAUDE_CODE` env, Claude Desktop has specific hooks)
|
|
25
|
-
- The available tools and context
|
|
26
|
-
- Or simply ask: "Which platform are you using?"
|
|
27
|
-
|
|
28
|
-
## Step 2A: Claude Code / Claude Desktop (Native OAuth)
|
|
29
|
-
|
|
30
|
-
If the user is on Claude Code or Claude Desktop:
|
|
19
|
+
## Step 1: Detect the platform
|
|
31
20
|
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
> The first time you use a Allye tool, your browser will open for login.
|
|
35
|
-
> Just start using Allye — try asking me to search memories or list work items.
|
|
21
|
+
Infer the current platform from the runtime when possible. Otherwise ask which
|
|
22
|
+
supported agent the user wants to configure.
|
|
36
23
|
|
|
37
|
-
|
|
24
|
+
## Step 2: Configure and authenticate one Allye entry
|
|
38
25
|
|
|
39
|
-
|
|
26
|
+
Preserve every unrelated server and credential. If an older Allye entry exists
|
|
27
|
+
under another name, identify its effective config source, remove only that
|
|
28
|
+
entry through the host's native management command, and keep only `allye`.
|
|
40
29
|
|
|
41
|
-
|
|
30
|
+
### Claude Code / Claude Desktop
|
|
42
31
|
|
|
43
|
-
|
|
32
|
+
The plugin's `.mcp.json` already declares `allye`. Open the MCP or plugin panel,
|
|
33
|
+
select **Allye**, and choose **Connect**. The browser completes consent.
|
|
44
34
|
|
|
45
|
-
|
|
35
|
+
For an intentional reconnect, use **Clear authentication** for Allye, then
|
|
36
|
+
**Authenticate/Connect**. Do not sign out of the host account.
|
|
46
37
|
|
|
47
|
-
###
|
|
38
|
+
### Codex
|
|
48
39
|
|
|
49
40
|
```bash
|
|
50
|
-
|
|
41
|
+
codex mcp get allye >/dev/null 2>&1 \
|
|
42
|
+
|| codex mcp add allye --url https://mcp.allye.app/mcp
|
|
43
|
+
codex mcp login allye
|
|
51
44
|
```
|
|
52
45
|
|
|
53
|
-
If
|
|
46
|
+
If a legacy Allye entry has a different name, use `codex mcp logout <old-name>`
|
|
47
|
+
and `codex mcp remove <old-name>` for that entry only before adding `allye`.
|
|
54
48
|
|
|
55
|
-
|
|
56
|
-
|
|
49
|
+
### OpenCode
|
|
50
|
+
|
|
51
|
+
Its effective `opencode.json` must contain:
|
|
52
|
+
|
|
53
|
+
```json
|
|
54
|
+
{
|
|
55
|
+
"mcp": {
|
|
56
|
+
"allye": {
|
|
57
|
+
"type": "remote",
|
|
58
|
+
"url": "https://mcp.allye.app/mcp",
|
|
59
|
+
"enabled": true
|
|
60
|
+
}
|
|
61
|
+
}
|
|
62
|
+
}
|
|
57
63
|
```
|
|
58
64
|
|
|
59
|
-
|
|
65
|
+
Preserve the rest of the file, then authenticate and confirm:
|
|
60
66
|
|
|
61
67
|
```bash
|
|
62
|
-
|
|
68
|
+
opencode mcp auth allye
|
|
69
|
+
opencode mcp list
|
|
63
70
|
```
|
|
64
71
|
|
|
65
|
-
|
|
66
|
-
1. Open the browser for Allye OAuth login
|
|
67
|
-
2. Start a local callback server on port 9316
|
|
68
|
-
3. After the user logs in and selects a team, capture the authorization code
|
|
69
|
-
4. Exchange the code for tokens
|
|
70
|
-
5. Output `ALLYE_ACCESS_TOKEN=...` and `ALLYE_REFRESH_TOKEN=...`
|
|
72
|
+
### Pi with pi-mcp-adapter
|
|
71
73
|
|
|
72
|
-
|
|
74
|
+
Use the effective MCP source shown by `/mcp` and define an `allye` remote server
|
|
75
|
+
at the canonical URL. The Allye repository installer does not write Pi's MCP
|
|
76
|
+
configuration.
|
|
73
77
|
|
|
74
|
-
|
|
75
|
-
The `opencode.json` manifest uses `${ALLYE_ACCESS_TOKEN}`. Set the env var:
|
|
78
|
+
Authenticate and connect in Pi:
|
|
76
79
|
|
|
77
|
-
```
|
|
78
|
-
|
|
80
|
+
```text
|
|
81
|
+
/mcp-auth allye
|
|
82
|
+
/mcp reconnect allye
|
|
79
83
|
```
|
|
80
84
|
|
|
81
|
-
|
|
85
|
+
Use `/reload` after changing the effective config source. `/mcp logout allye`
|
|
86
|
+
clears only Allye's native credential when the user explicitly requests a
|
|
87
|
+
reconnection.
|
|
82
88
|
|
|
83
|
-
|
|
84
|
-
Add MCP server in Cursor settings (Settings → MCP Servers):
|
|
85
|
-
- Name: `allye-mcp`
|
|
86
|
-
- URL: `https://mcp.allye.app/mcp`
|
|
87
|
-
- Headers: `Authorization: Bearer <token>`
|
|
89
|
+
### Other native MCP clients
|
|
88
90
|
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
- URL: `https://mcp.allye.app/mcp`
|
|
92
|
-
- Authorization header: `Bearer <token>`
|
|
91
|
+
Add a remote HTTP MCP server named `allye` at the canonical URL and use the
|
|
92
|
+
client's native OAuth action. Preserve unrelated configuration and credentials.
|
|
93
93
|
|
|
94
|
-
|
|
94
|
+
## Step 3: Confirm MCP access
|
|
95
95
|
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
96
|
+
Start or reload the host session, confirm the `allye` server is connected, and
|
|
97
|
+
invoke a read-only Allye tool. Tenant selection happens during consent; the URL
|
|
98
|
+
never contains a tenant slug.
|
|
99
99
|
|
|
100
|
-
## Step
|
|
100
|
+
## Step 4: Delivery configuration
|
|
101
101
|
|
|
102
102
|
Ask once, here, rather than at every dispatch. Five parallel stories would otherwise mean
|
|
103
103
|
ten identical questions whose answer never varies.
|
|
@@ -210,16 +210,17 @@ Platform capability also constrains the map. OpenCode has six agent personas; Cu
|
|
|
210
210
|
and Gemini CLI have one agent and no picker — routing a specific persona to them silently
|
|
211
211
|
does nothing.
|
|
212
212
|
|
|
213
|
-
##
|
|
213
|
+
## Authentication lifecycle
|
|
214
214
|
|
|
215
|
-
|
|
216
|
-
|
|
217
|
-
|
|
215
|
+
The host runtime rotates access and refresh tokens automatically. A normal
|
|
216
|
+
restart, an HTTP 403 authorization result, or an HTTP 503 dependency failure
|
|
217
|
+
does not require clearing credentials or opening the browser.
|
|
218
218
|
|
|
219
|
-
|
|
219
|
+
An explicit grant revocation or the 90-day grant limit requires a new consent.
|
|
220
|
+
When the user intentionally reconnects, clear only the `allye` entry:
|
|
220
221
|
|
|
221
|
-
-
|
|
222
|
-
- `
|
|
223
|
-
-
|
|
224
|
-
-
|
|
225
|
-
-
|
|
222
|
+
- **Claude Code/Desktop:** Allye → **Clear authentication** → **Authenticate/Connect**
|
|
223
|
+
- **Codex:** `codex mcp logout allye`, then `codex mcp login allye`
|
|
224
|
+
- **OpenCode:** `opencode mcp logout allye`, then `opencode mcp auth allye`
|
|
225
|
+
- **Pi:** `/mcp logout allye`, then `/mcp-auth allye` and `/mcp reconnect allye`
|
|
226
|
+
- **Other clients:** use the host's clear/reconnect action scoped to `allye`
|
|
@@ -192,18 +192,17 @@ Manage and export workflow skills.
|
|
|
192
192
|
| `skill_get` | Get skill by ID | `skill_id`* or `id`* |
|
|
193
193
|
| `skill_update` | Update a skill | `skill_id`* or `id`*, `skill_name`, `skill_content`, `skill_description`, `skill_category`, `skill_is_active` |
|
|
194
194
|
| `skill_delete` | Delete a skill | `skill_id`* or `id`* |
|
|
195
|
-
| `skill_marketplace` | Browse marketplace skills | `query`, `limit`, `offset` |
|
|
196
195
|
| `skill_fork` | Fork a readable source skill into an independent internal draft | `skill_id`* or `id`*, `skill_scope`*, `skill_slug` (explicit namespace key; required to retry a collision), `skill_name`, `skill_category` (scope only `personal`/`team`/`organization` — no `marketplace`) |
|
|
197
196
|
| `skill_export` | Export a skill in agent format | `skill_id`* or `id`*, `skill_export_format`* |
|
|
198
197
|
| `skill_import_github` | Import skill from GitHub | `repo_url`* |
|
|
199
198
|
| `skill_install` | Install a skill | `skill_id`* or `id`* |
|
|
200
199
|
| `skill_export_merged` | Export multiple skills merged | `skill_ids`*, `skill_export_format`* |
|
|
201
200
|
|
|
202
|
-
**`skill_create` requires all three of `skill_content`, `skill_scope`, and `skill_category`** — easy to miss since only `skill_name` reads as obviously required. Write scopes are only `personal`, `team`, and `organization
|
|
201
|
+
**`skill_create` requires all three of `skill_content`, `skill_scope`, and `skill_category`** — easy to miss since only `skill_name` reads as obviously required. Write scopes are only `personal`, `team`, and `organization`. A retired public-scope request returns API error `MARKETPLACE_RETIRED` (HTTP 410): `Marketplace público foi aposentado; use a biblioteca interna de Skills.`
|
|
203
202
|
|
|
204
203
|
For shared writes, the API is authoritative: the authenticated actor must be the container owner/admin, have tenant-scoped `skills:manage`, or hold an active maintainer grant. Membership gives read access, not write access. Team writes require the selected active team (`team_id`/request context); personal and organization writes do not. Use `skill_resolve` for canonical `team > organization > personal` resolution and honor its `candidates`, `selected`, `owner`, `rule`, `reason`, and `conflict` fields.
|
|
205
204
|
|
|
206
|
-
Forks are independent drafts with `forked_from_id`, a new author, no copied grants, and preserved source provenance when available. If a fork returns `409 Conflict`, choose a different explicit `skill_slug` and retry; never silently suffix or overwrite a namespace.
|
|
205
|
+
Forks are independent drafts with `forked_from_id`, a new author, no copied grants, and preserved source provenance when available. If a fork returns `409 Conflict`, choose a different explicit `skill_slug` and retry; never silently suffix or overwrite a namespace. The internal library is the only Skills source.
|
|
207
206
|
|
|
208
207
|
**Export formats:** `cursor`, `claude`, `copilot`, `windsurf`, `opencode`, `codex`, `gemini`
|
|
209
208
|
**Skill scopes (create/import/fork):** `personal`, `team`, `organization` (never `marketplace`)
|