trelly 0.1.1 → 0.2.1

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.
@@ -0,0 +1,15 @@
1
+ {
2
+ "name": "trelly",
3
+ "version": "0.1.1",
4
+ "description": "Trello CLI + MCP tools — boards, lists, cards, search, and raw API via trelly-mcp",
5
+ "author": {
6
+ "name": "brandonkramer",
7
+ "url": "https://github.com/brandonkramer"
8
+ },
9
+ "homepage": "https://github.com/brandonkramer/trelly#readme",
10
+ "repository": "https://github.com/brandonkramer/trelly",
11
+ "license": "MIT",
12
+ "keywords": ["trello", "trelly", "mcp", "kanban", "productivity"],
13
+ "skills": ["./skills"],
14
+ "mcpServers": "./.mcp.json"
15
+ }
@@ -0,0 +1,25 @@
1
+ {
2
+ "name": "trelly",
3
+ "version": "0.1.1",
4
+ "description": "Trello CLI + MCP — boards, lists, cards, search, and raw API via trelly-mcp",
5
+ "author": {
6
+ "name": "brandonkramer",
7
+ "url": "https://github.com/brandonkramer"
8
+ },
9
+ "homepage": "https://github.com/brandonkramer/trelly#readme",
10
+ "repository": "https://github.com/brandonkramer/trelly",
11
+ "license": "MIT",
12
+ "keywords": ["trello", "trelly", "mcp", "kanban"],
13
+ "skills": "./skills/",
14
+ "mcpServers": "./.mcp.json",
15
+ "interface": {
16
+ "displayName": "Trelly",
17
+ "shortDescription": "Trello boards, cards, and search from Codex",
18
+ "longDescription": "Manage Trello with trelly-mcp tools and CLI guidance. Auth once with trelly auth login.",
19
+ "developerName": "brandonkramer",
20
+ "category": "Productivity",
21
+ "capabilities": ["Read", "Write"],
22
+ "websiteURL": "https://github.com/brandonkramer/trelly",
23
+ "privacyPolicyURL": "https://github.com/brandonkramer/trelly/blob/main/PRIVACY.md"
24
+ }
25
+ }
@@ -0,0 +1,11 @@
1
+ {
2
+ "mcpServers": {
3
+ "trelly": {
4
+ "command": "bash",
5
+ "args": ["../bin/trelly-mcp"],
6
+ "env": {
7
+ "TRELLO_PROFILE": "default"
8
+ }
9
+ }
10
+ }
11
+ }
@@ -0,0 +1,15 @@
1
+ {
2
+ "name": "trelly",
3
+ "version": "0.1.1",
4
+ "description": "Trello boards, lists, cards, search, and comments via MCP — with agent skills for CLI and trelly-mcp tools.",
5
+ "author": {
6
+ "name": "brandonkramer"
7
+ },
8
+ "homepage": "https://github.com/brandonkramer/trelly#readme",
9
+ "repository": "https://github.com/brandonkramer/trelly",
10
+ "license": "MIT",
11
+ "keywords": ["trello", "trelly", "mcp", "kanban", "productivity"],
12
+ "logo": "assets/logo.svg",
13
+ "skills": "./skills/",
14
+ "mcpServers": "mcp.json"
15
+ }
package/.mcp.json ADDED
@@ -0,0 +1,8 @@
1
+ {
2
+ "trelly": {
3
+ "command": "${CLAUDE_PLUGIN_ROOT}/bin/trelly-mcp",
4
+ "env": {
5
+ "TRELLO_PROFILE": "default"
6
+ }
7
+ }
8
+ }
package/PLUGIN.md ADDED
@@ -0,0 +1,85 @@
1
+ # Trelly agent plugin
2
+
3
+ Marketplace-facing overview for **Cursor**, **Claude Code**, and **Codex**. The npm
4
+ package root is the plugin bundle (skills + MCP + launcher scripts).
5
+
6
+ ## What it does
7
+
8
+ - **Skills** teach agents when to use the CLI vs MCP, how auth works, and archive vs
9
+ delete safety (`skills/trelly`, `skills/trelly-mcp`).
10
+ - **MCP** exposes 27 Trello tools via stdio (`trelly-mcp` → `src/mcp/server.ts`).
11
+ - **CLI** (`trelly`) is optional for humans/scripts; the plugin does not require global
12
+ npm install if the IDE loads the plugin from this repository (MCP uses bundled
13
+ `bin/trelly-mcp`).
14
+
15
+ ## Prerequisites (end users)
16
+
17
+ 1. **Node 22+** (or Bun) — `bin/run-ts` falls back to bundled `tsx` for MCP/CLI.
18
+ 2. One-time Trello auth:
19
+ ```bash
20
+ trelly auth setup # API key from https://trello.com/power-ups/admin
21
+ trelly auth login # browser OAuth → ~/.config/trelly/config.json
22
+ ```
23
+ 3. macOS or Linux (`package.json` `"os"`).
24
+
25
+ ## Plugin layout
26
+
27
+ | Path | Purpose |
28
+ |------|---------|
29
+ | `.cursor-plugin/plugin.json` | Cursor manifest |
30
+ | `.cursor-plugin/mcp.json` | Cursor MCP (bundled `bin/trelly-mcp`) |
31
+ | `.claude-plugin/plugin.json` | Claude Code manifest |
32
+ | `.mcp.json` | Claude/Codex MCP (`${CLAUDE_PLUGIN_ROOT}/bin/trelly-mcp`) |
33
+ | `.codex-plugin/plugin.json` | Codex manifest |
34
+ | `skills/` | Agent skills (source of truth) |
35
+ | `assets/logo.svg` | Plugin logo |
36
+ | [PRIVACY.md](PRIVACY.md) | Data handling |
37
+
38
+ ## Test locally (Cursor)
39
+
40
+ Symlinks are unreliable in Cursor plugins — **copy** the repo:
41
+
42
+ ```bash
43
+ ./bin/install-cursor-plugin-local.sh
44
+ ```
45
+
46
+ Then **Developer: Reload Window** in Cursor. Verify MCP **trelly** is connected and skills
47
+ appear. Run `trelly auth list` in a terminal if tools return auth errors.
48
+
49
+ ## Test locally (Claude Code)
50
+
51
+ ```bash
52
+ claude plugin install /absolute/path/to/trelly
53
+ # or after npm install -g trelly:
54
+ claude plugin install "$(npm root -g)/trelly"
55
+ ```
56
+
57
+ Reload Claude Code. Confirm MCP server **trelly** and skills load.
58
+
59
+ ## Submit to official marketplaces
60
+
61
+ | Platform | Action |
62
+ |----------|--------|
63
+ | **Cursor** | [cursor.com/marketplace/publish](https://cursor.com/marketplace/publish) — repo `https://github.com/brandonkramer/trelly` |
64
+ | **Claude Code** | [clau.de/plugin-directory-submission](https://clau.de/plugin-directory-submission) — same repo |
65
+
66
+ Requirements:
67
+
68
+ - Open source (MIT) ✅
69
+ - Valid manifests and skill frontmatter ✅
70
+ - Logo at `assets/logo.svg` ✅
71
+ - Privacy summary in [PRIVACY.md](PRIVACY.md) ✅
72
+ - Manual review on updates (Cursor); Anthropic review for official directory
73
+
74
+ After Claude approval, users install with:
75
+
76
+ ```text
77
+ /plugin install trelly@claude-plugins-official
78
+ ```
79
+
80
+ ## MCP safety notes for reviewers
81
+
82
+ - **`trello_card_archive`** / **`trello_board_archive`** — reversible (Trello `closed=true`)
83
+ - **`trello_card_delete`** — permanent; marked `destructiveHint` in MCP registration
84
+ - No MCP board-delete tool
85
+ - Auth never appears in URLs; tokens in `Authorization` header only
package/PRIVACY.md ADDED
@@ -0,0 +1,43 @@
1
+ # Trelly privacy
2
+
3
+ Trelly is a local CLI and MCP plugin for [Trello](https://trello.com). This document
4
+ describes data handling for marketplace review and end users.
5
+
6
+ ## What runs locally
7
+
8
+ - **CLI (`trelly`)** and **MCP server (`trelly-mcp`)** run on your machine as child
9
+ processes of your terminal or IDE.
10
+ - **Credentials** (API key + token) are stored only in `~/.config/trelly/config.json`
11
+ (file mode `600`). The plugin does not upload credentials to any server operated by
12
+ the trelly author.
13
+ - **Agent skills** are static markdown instructions bundled in the package. They contain
14
+ no telemetry or phone-home logic.
15
+
16
+ ## What leaves your machine
17
+
18
+ - API requests go **directly to Trello** (`https://api.trello.com`) using your token in
19
+ the `Authorization` header. Trello’s privacy policy applies to that data:
20
+ [Atlassian Privacy Policy](https://www.atlassian.com/legal/privacy-policy).
21
+ - The trelly package does **not** collect analytics, crash reports, or usage metrics.
22
+
23
+ ## MCP and IDE plugins
24
+
25
+ - Cursor, Claude Code, and Codex plugins bundle the same `trelly-mcp` stdio server and
26
+ skills. Enabling the plugin lets the IDE spawn `trelly-mcp`; tool calls follow the same
27
+ Trello API path as the CLI.
28
+ - IDE vendors (Cursor, Anthropic, OpenAI) may log prompts or tool traffic according to
29
+ their own product policies. That is outside trelly’s control.
30
+
31
+ ## Your responsibilities
32
+
33
+ - Register your own Trello Power-Up API key at
34
+ [power-ups/admin](https://trello.com/power-ups/admin).
35
+ - Treat `~/.config/trelly/config.json` like a password file.
36
+ - Prefer **`trello_*_archive`** MCP tools over **`trello_card_delete`** unless permanent
37
+ deletion is intended.
38
+
39
+ ## Contact
40
+
41
+ Issues and security reports: [github.com/brandonkramer/trelly/issues](https://github.com/brandonkramer/trelly/issues)
42
+
43
+ License: MIT — see [LICENSE](LICENSE).
package/README.md CHANGED
@@ -1,21 +1,25 @@
1
- # trelly ~ trello CLI
1
+ <p>
2
+ <img src="assets/logo.svg" alt="Trelly" width="128" height="128" />
3
+ </p>
4
+
5
+ # Trelly -- Trello CLI
2
6
 
3
7
  Fast Trello CLI + MCP server ([npm](https://www.npmjs.com/package/trelly): `npm install -g trelly`).
4
8
  **Human, Trello-styled output by default**; add `--json` for scripts and automation.
5
9
  Commands: **`trelly`** (CLI) and **`trelly-mcp`** (MCP server).
6
10
 
7
- ![trelly interactive UI](cli.gif)
11
+ ![trelly terminal UI](assets/terminal.gif)
8
12
 
9
13
  Boards, lists, cards, checklists, labels, custom fields, search, webhooks, multi-profile
10
14
  auth, interactive kanban TUI, raw `trelly api` escape hatch.
11
15
 
12
- ## Quick start
16
+ ## Install
13
17
 
14
18
  ```bash
15
- npm install -g trelly # or: brew install brandonkramer/tap/trelly · bunx trelly · npx trelly
16
- trelly auth setup # once: API key from power-ups/admin
17
- trelly auth login # browser → Allow
18
- trelly boards list
19
+ npm install -g trelly # npm (Node 22+)
20
+ brew install brandonkramer/tap/trelly # Homebrew
21
+ bunx trelly # run without installing (Bun)
22
+ npx trelly # run without installing (Node 22+)
19
23
  ```
20
24
 
21
25
  From source (repo [brandonkramer/trelly](https://github.com/brandonkramer/trelly)):
@@ -32,6 +36,24 @@ No Bun? `npm install` in the clone — tsx is the fallback runtime.
32
36
 
33
37
  Optional: `bun link` / `npm link`, or add `bin/` to `PATH`.
34
38
 
39
+ ### Updating
40
+
41
+ ```bash
42
+ npm update -g trelly # or: npm install -g trelly@latest
43
+ brew upgrade trelly # Homebrew
44
+ ```
45
+
46
+ Auth in `~/.config/trelly/config.json` is kept across upgrades. Reload your IDE after
47
+ updating if you use the agent plugin MCP server.
48
+
49
+ ## Quick start
50
+
51
+ ```bash
52
+ trelly auth setup # once: API key from power-ups/admin
53
+ trelly auth login # browser → Allow
54
+ trelly boards list
55
+ ```
56
+
35
57
  ## Output
36
58
 
37
59
  | Mode | Command | stdout |
@@ -56,6 +78,8 @@ trelly ui BOARD_ID # jump straight to a board
56
78
 
57
79
  Requires a TTY. Keys: **arrows** / **hjkl** move focus, **Enter** card detail, **r** refresh, **q** / **Esc** back or quit.
58
80
 
81
+ In card detail: **↑↓** move over attachments and comments, **Enter** opens the focused attachment in your browser or expands/collapses the focused comment, **c** new comment, **r** reply to the focused comment (prefills `@author`), **a** attach a file path or URL, **Esc** back.
82
+
59
83
  See the demo above or run `trelly --help` for all subcommands.
60
84
 
61
85
  ## Auth
@@ -93,6 +117,7 @@ trelly --profile work boards lists BOARD_ID
93
117
  trelly cards create --list LIST_ID --name "Ship feature"
94
118
  trelly cards comments CARD_ID
95
119
  trelly cards comment CARD_ID --text "Shipped"
120
+ trelly cards add-attachment CARD_ID --file screenshot.png # or --url https://…
96
121
  trelly search "customer onboarding"
97
122
  trelly api -X PUT --path /cards/CARD_ID --query idList=LIST_ID
98
123
  trelly api -X POST --path /cards --body '{"idList":"LIST_ID","name":"Hi"}'
@@ -111,7 +136,7 @@ Top-level: `auth` · `boards` · `lists` · `cards` · `checklists` · `labels`
111
136
  | **auth** | `setup` · `login` · `list` · `use` · `logout` · `url` |
112
137
  | **boards** | `list` · `get` · `create` · `update` · `archive` · `delete` · `lists` · `cards` · `labels` · `members` · `actions` · `custom-fields` |
113
138
  | **lists** | `get` · `create` · `update` · `archive` · `cards` |
114
- | **cards** | `get` · `list` · `create` · `update` · `move` · `comments` · `comment` · `archive` · `delete` · `members` · `add-member` · `remove-member` · `labels` · `add-label` · `remove-label` · `actions` · `attachments` · `add-attachment` · `custom-fields` |
139
+ | **cards** | `get` · `list` · `create` · `update` · `move` · `comments` · `comment` · `archive` · `delete` · `members` · `add-member` · `remove-member` · `labels` · `add-label` · `remove-label` · `actions` · `attachments` · `add-attachment` · `delete-attachment` · `custom-fields` |
115
140
  | **checklists** | `get` · `create` · `update` · `delete` · `add-item` · `update-item` · `delete-item` |
116
141
  | **labels** | `get` · `create` · `update` · `delete` |
117
142
  | **custom-fields** | `get` · `create` · `update` · `delete` · `set-item` |
@@ -184,7 +209,31 @@ bun run typecheck && bun test && bun run lint
184
209
 
185
210
  CI runs the same via `bun install --frozen-lockfile`. See `AGENTS.md` for conventions.
186
211
 
187
- **Agent skills:** [skills/](skills/README.md) — portable `SKILL.md` files for Cursor, Claude, Pi, Codex (`trelly`, `trelly-mcp`).
212
+ ## Agent skills & plugins
213
+
214
+ Shipped in the npm package for **end users** — skills plus IDE plugin manifests. Full
215
+ plugin docs: [PLUGIN.md](PLUGIN.md) · Privacy: [PRIVACY.md](PRIVACY.md) ·
216
+ [skills/README.md](skills/README.md).
217
+
218
+ ```bash
219
+ npm install -g trelly
220
+ trelly auth setup && trelly auth login
221
+
222
+ pi install npm:trelly
223
+ claude plugin install "$(npm root -g)/trelly"
224
+ ./bin/install-cursor-plugin-local.sh # Cursor local test (copy, not symlink)
225
+ ```
226
+
227
+ MCP-only (no plugin): add `trelly-mcp` to `~/.cursor/mcp.json` — [mcp.example.json](mcp.example.json).
228
+
229
+ ### Marketplace submission
230
+
231
+ | Platform | Submit |
232
+ |----------|--------|
233
+ | **Cursor** | [cursor.com/marketplace/publish](https://cursor.com/marketplace/publish) → `https://github.com/brandonkramer/trelly` |
234
+ | **Claude Code** | [clau.de/plugin-directory-submission](https://clau.de/plugin-directory-submission) |
235
+
236
+ Open source (MIT). After Claude listing: `/plugin install trelly@claude-plugins-official`.
188
237
 
189
238
  ## License
190
239
 
@@ -0,0 +1,6 @@
1
+ <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 128 128" role="img" aria-label="Trelly">
2
+ <rect width="128" height="128" rx="28" fill="#0A7EA4"/>
3
+ <rect x="22" y="30" width="24" height="68" rx="5" fill="#fff" opacity="0.92"/>
4
+ <rect x="52" y="30" width="24" height="50" rx="5" fill="#fff" opacity="0.78"/>
5
+ <rect x="82" y="30" width="24" height="60" rx="5" fill="#fff" opacity="0.86"/>
6
+ </svg>
Binary file
@@ -0,0 +1,15 @@
1
+ #!/usr/bin/env bash
2
+ # Copy trelly into ~/.cursor/plugins/local/trelly for marketplace preflight testing.
3
+ # Cursor plugin symlinks are unreliable — use cp -R (see PLUGIN.md).
4
+ set -euo pipefail
5
+
6
+ ROOT="$(cd "$(dirname "$0")/.." && pwd)"
7
+ DEST="${HOME}/.cursor/plugins/local/trelly"
8
+
9
+ rm -rf "$DEST"
10
+ mkdir -p "${HOME}/.cursor/plugins/local"
11
+ cp -R "$ROOT" "$DEST"
12
+ chmod +x "$DEST/bin/trelly" "$DEST/bin/trelly-mcp" "$DEST/bin/run-ts" 2>/dev/null || true
13
+
14
+ echo "Copied trelly plugin to: $DEST"
15
+ echo "Next: reload Cursor (Developer: Reload Window) and check MCP + skills."
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "trelly",
3
- "version": "0.1.1",
3
+ "version": "0.2.1",
4
4
  "description": "trelly — fast Trello CLI with multi-profile auth, MCP server, and kanban TUI",
5
5
  "type": "module",
6
6
  "license": "MIT",
@@ -11,8 +11,14 @@
11
11
  "trelly",
12
12
  "mcp",
13
13
  "kanban",
14
- "automation"
14
+ "automation",
15
+ "pi-package"
15
16
  ],
17
+ "pi": {
18
+ "skills": [
19
+ "./skills"
20
+ ]
21
+ },
16
22
  "repository": {
17
23
  "type": "git",
18
24
  "url": "https://github.com/brandonkramer/trelly.git"
@@ -26,7 +32,15 @@
26
32
  ],
27
33
  "files": [
28
34
  "bin/",
29
- "src/"
35
+ "src/",
36
+ "skills/",
37
+ "assets/",
38
+ ".claude-plugin/",
39
+ ".codex-plugin/",
40
+ ".cursor-plugin/",
41
+ ".mcp.json",
42
+ "PLUGIN.md",
43
+ "PRIVACY.md"
30
44
  ],
31
45
  "bin": {
32
46
  "trelly": "./bin/trelly",
@@ -40,7 +54,7 @@
40
54
  "lint": "biome check .",
41
55
  "fmt": "biome format --write .",
42
56
  "fmt:check": "biome check .",
43
- "postinstall": "chmod +x bin/trelly bin/trelly-mcp bin/run-ts 2>/dev/null || true",
57
+ "postinstall": "chmod +x bin/trelly bin/trelly-mcp bin/run-ts bin/install-cursor-plugin-local.sh 2>/dev/null || true",
44
58
  "prepublishOnly": "bun run typecheck && bun test && bun run lint"
45
59
  },
46
60
  "engines": {
@@ -0,0 +1,115 @@
1
+ # trelly agent skills & plugins
2
+
3
+ These ship **inside the npm package** (`npm install -g trelly`). They teach your AI agent
4
+ how to use the CLI and MCP — for anyone using trelly on their machine, not for people
5
+ developing this repo.
6
+
7
+ | Skill | Use when |
8
+ |-------|----------|
9
+ | [trelly](trelly/SKILL.md) | Terminal / bash: `trelly boards list`, auth, attachments, GitHub PR/commit links, `--json` |
10
+ | [trelly-mcp](trelly-mcp/SKILL.md) | IDE agent with MCP wired: tool names, GitHub links via `trello_api`, envelopes, safety |
11
+
12
+ **One copy of the content:** `skills/trelly/` and `skills/trelly-mcp/` in the installed
13
+ package. Plugins and Pi load from there — you don't maintain separate copies.
14
+
15
+ ## Prerequisite
16
+
17
+ ```bash
18
+ npm install -g trelly # or: brew install brandonkramer/tap/trelly
19
+ trelly auth setup
20
+ trelly auth login
21
+ ```
22
+
23
+ ## Pi
24
+
25
+ ```bash
26
+ pi install npm:trelly
27
+ ```
28
+
29
+ Loads both skills from the package manifest (`package.json` → `"pi": { "skills": ["./skills"] }`).
30
+ Pi has no built-in MCP — use the **trelly** skill for CLI/bash, or wire MCP in Cursor/Claude
31
+ below.
32
+
33
+ ## Claude Code
34
+
35
+ Install the plugin from your global npm package (skills + MCP in one step):
36
+
37
+ ```bash
38
+ claude plugin install "$(npm root -g)/trelly"
39
+ ```
40
+
41
+ Reload Claude Code. The plugin starts `trelly-mcp` and loads `skills/trelly` +
42
+ `skills/trelly-mcp`.
43
+
44
+ **MCP only** (no plugin skills): add to your Claude MCP config using `trelly-mcp` on PATH
45
+ (see [trelly-mcp/SKILL.md](trelly-mcp/SKILL.md)).
46
+
47
+ ## Codex
48
+
49
+ Codex uses `.codex-plugin/plugin.json` (same layout as Claude: skills + `.mcp.json` at
50
+ package root). Install via a **marketplace** — see
51
+ [Codex plugin docs](https://developers.openai.com/codex/plugins/build).
52
+
53
+ After `npm install -g trelly`:
54
+
55
+ ```bash
56
+ mkdir -p ~/.agents/plugins
57
+ ln -sf "$(npm root -g)/trelly" ~/.agents/plugins/trelly
58
+ ```
59
+
60
+ `~/.agents/plugins/marketplace.json`:
61
+
62
+ ```json
63
+ {
64
+ "name": "local-trelly",
65
+ "interface": { "displayName": "Trelly" },
66
+ "plugins": [
67
+ {
68
+ "name": "trelly",
69
+ "source": {
70
+ "source": "local",
71
+ "path": "./trelly"
72
+ },
73
+ "policy": {
74
+ "installation": "AVAILABLE",
75
+ "authentication": "ON_INSTALL"
76
+ },
77
+ "category": "Productivity"
78
+ }
79
+ ]
80
+ }
81
+ ```
82
+
83
+ Restart Codex, run `/plugins`, install **Trelly**, then `trelly auth setup && trelly auth login`
84
+ once. Codex sets `${PLUGIN_ROOT}` (and `${CLAUDE_PLUGIN_ROOT}`) so bundled MCP finds
85
+ `bin/trelly-mcp`.
86
+
87
+ For team/repo distribution, publish a marketplace with a `git-subdir` entry pointing at
88
+ this package, or use `codex plugin marketplace add owner/repo`.
89
+
90
+ ## Cursor
91
+
92
+ **Plugin (skills + MCP):**
93
+
94
+ ```bash
95
+ ./bin/install-cursor-plugin-local.sh # from repo clone (copy — symlinks break in Cursor)
96
+ # or after npm install -g trelly:
97
+ cp -R "$(npm root -g)/trelly" ~/.cursor/plugins/local/trelly
98
+ ```
99
+
100
+ Restart Cursor / reload MCP.
101
+
102
+ **MCP only:** copy [mcp.example.json](../mcp.example.json) into `~/.cursor/mcp.json`.
103
+
104
+ ## What each piece does
105
+
106
+ | Piece | Role |
107
+ |-------|------|
108
+ | `skills/` | Agent instructions (CLI vs MCP, auth, safety) — **the content** |
109
+ | `.claude-plugin/` + `.mcp.json` | Claude Code plugin manifest + MCP wiring |
110
+ | `.codex-plugin/` + `.mcp.json` | Codex plugin manifest + MCP wiring |
111
+ | `.cursor-plugin/` | Cursor plugin manifest + MCP wiring |
112
+ | `package.json` `"pi"` | Pi package manifest (skills path) |
113
+
114
+ Skills tell the agent *how* to use trelly. MCP config tells the IDE *how to spawn*
115
+ `trelly-mcp`. After `npm install -g trelly`, both bins are on PATH.