set-prompt 0.6.0 → 0.7.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.
package/CHANGELOG.md CHANGED
@@ -4,6 +4,38 @@ All notable changes to this project will be documented in this file.
4
4
 
5
5
  ---
6
6
 
7
+ ## [0.7.1] - 2026-04-20
8
+
9
+ ### Changed
10
+ - README hero: replaced ASCII structure diagram with hand-drawn architecture image (`docs/imgs/architecture.png`), loaded via GitHub raw URL so it renders on both GitHub and npmjs.com
11
+ - Added `docs/` directory for documentation assets (`docs/imgs/` for images); excluded from npm package via `.npmignore`
12
+
13
+ ---
14
+
15
+ ## [0.7.0] - 2026-04-20
16
+
17
+ ### Added
18
+ - **OpenCode integration** (`link opencode`) — dir symlinks into `~/.config/opencode/` (OpenCode's default config directory). Links `skills/`, `commands/`, `agents/`.
19
+ - **Gemini CLI integration** (`link geminicli`) — dir symlinks into `~/.gemini/` (coexists with Antigravity's `~/.gemini/antigravity/` subtree). Links `skills/`, `commands/`, `agents/`.
20
+ - `OpencodeConfigSchema` / `GeminicliConfigSchema` + types + `configManager.opencode` / `configManager.geminicli` getter/setter + `isOpencodeEnabled()` / `isGeminicliEnabled()`
21
+ - `SET_PROMPT_GUIDE` template: OpenCode frontmatter reference — skills (`name`, `description`, `license`, `compatibility`, `metadata`), commands (`template` required + `agent`/`model`/`subtask`), agents (`mode`, `temperature`, `top_p`, `steps`, `tools`, `permission`, `prompt` with `{file:...}` reference, etc.)
22
+ - `SET_PROMPT_GUIDE` template: Gemini CLI frontmatter reference — skills (`name` + `description` — minimal), agents (`kind`, `tools` as array, `model`, `temperature` 0–2.0, `max_turns`, `timeout_mins`, `mcpServers` as nested YAML map), and a dedicated TOML sample for Gemini CLI commands (`prompt` required + `description`) with `{{args}}`/`!{cmd}`/`@{path}` placeholders and namespaced subdirectory support (`/git:commit`)
23
+ - Tests: `tests/commands/link-opencode.test.ts`, `tests/commands/link-geminicli.test.ts`
24
+ - README hero rewrite with `One repo. Every AI coding tool. Always in sync.` tagline, npm/GitHub/Sponsor badges, Quick Start section
25
+ - `engines.node >=18` declared in `package.json`
26
+
27
+ ### Changed
28
+ - `link-command.ts`: `LINK_MAP` / `UNLINK_MAP` / `prevLinked` extended with OpenCode and Gemini CLI entries
29
+ - `checkbox` prompt UX: added `loop: false` and `pageSize: ALL_AGENTS.length` so the agent list no longer wraps around and shows all options without scrolling
30
+ - Removed Contributing section from README (not accepting external PRs yet)
31
+
32
+ ### Notes / Caveats
33
+ - **Gemini CLI commands use `.toml`** (not `.md`) — repo's `commands/` needs TOML files for Gemini to recognize them
34
+ - **Gemini CLI agents have strict frontmatter validation** — rejects unknown keys (e.g. `color`, `allowed-tools`, `mode` from other platforms). Allowed keys only: `name`, `description`, `kind`, `tools`, `mcpServers`, `model`, `temperature`, `max_turns`, `timeout_mins`. Warning printed on link completion.
35
+ - **RooCode skill directories must use hyphens, not underscores** — `my_skill` silently fails to register, `my-skill` works. Document-only gotcha (no code change); noted in `SET_PROMPT_GUIDE` skill `name` row.
36
+
37
+ ---
38
+
7
39
  ## [0.6.0] - 2026-04-14
8
40
 
9
41
  ### Added
package/README.md CHANGED
@@ -1,43 +1,42 @@
1
1
  # Set Prompt
2
2
 
3
- As you work with AI agents, you build up your own prompt set — skills, commands, and workflows tailored to how you work.
3
+ [![npm version](https://img.shields.io/npm/v/set-prompt?color=cb3837&logo=npm)](https://www.npmjs.com/package/set-prompt)
4
+ [![npm downloads](https://img.shields.io/npm/dm/set-prompt?color=informational)](https://www.npmjs.com/package/set-prompt)
5
+ [![GitHub stars](https://img.shields.io/github/stars/juncha9/set-prompt?color=f5d90a&logo=github)](https://github.com/juncha9/set-prompt/stargazers)
6
+ [![last commit](https://img.shields.io/github/last-commit/juncha9/set-prompt?color=blueviolet&logo=github)](https://github.com/juncha9/set-prompt/commits/main)
7
+ [![license](https://img.shields.io/npm/l/set-prompt?color=green)](./LICENSE.md)
8
+ [![node](https://img.shields.io/node/v/set-prompt?color=success&logo=node.js)](https://nodejs.org)
9
+ [![Sponsor](https://img.shields.io/badge/Sponsor-%E2%9D%A4-ea4aaa?logo=github-sponsors)](https://github.com/sponsors/juncha9)
4
10
 
5
- But every time you try a new AI agent, you have to set it all up again from scratch. And as your prompts evolve, keeping them in sync across multiple tools becomes a maintenance burden that the tools themselves don't help with.
11
+ ### One repo. Every AI coding tool. Always in sync.
6
12
 
7
- `set-prompt` was built to solve this. It maintains a single git repository of prompts and links them into each tool's expected location — so your prompt set stays in one place, stays versioned, and stays consistent across every AI agent you use.
13
+ Your skills, commands, and agents live in git. One command syncs them into every AI coding tool you use — so the prompts you built stay with you no matter which tool you're in.
8
14
 
9
- One repo. Every agent. Always in sync.
15
+ ![set-prompt architecture](https://raw.githubusercontent.com/juncha9/set-prompt/main/docs/imgs/architecture.png)
10
16
 
11
- ```
12
- repo/ (git)
13
- ├── skills/
14
- ├── commands/
15
- ├── hooks/
16
- ├── agents/
17
- ├── rules/
18
- ├── .mcp.json
19
- ├── .app.json
20
- ├── .claude-plugin/plugin.json
21
- └── .codex-plugin/plugin.json
22
-
23
- ┌──────────────────┼──────────────────────┐
24
- ▼ ▼ ▼
25
- Claude Code Codex RooCode, OpenClaw,
26
- (marketplace + (marketplace + Antigravity, Cursor
27
- repo symlink) cache symlink) (dir symlinks)
17
+ ## Quick Start
18
+
19
+ From zero to linked in under a minute:
20
+
21
+ ```bash
22
+ npm install -g set-prompt
23
+ sppt install https://github.com/you/my-prompts # or: sppt scaffold .
24
+ sppt link # interactive checkbox — pick your tools
28
25
  ```
29
26
 
27
+ That's it. Your prompts are now live in every AI tool you selected.
28
+
30
29
  ## Installation
31
30
 
32
31
  ```bash
32
+ # global install (recommended)
33
33
  npm install -g set-prompt
34
- # or use without installing
34
+
35
+ # one-off run without installing
35
36
  npx set-prompt <command>
36
37
  ```
37
38
 
38
- ## CLI Alias
39
-
40
- `sppt` is a built-in short alias for `set-prompt` — all commands work with either name:
39
+ Both `set-prompt` and the short alias `sppt` are registered — use whichever you prefer:
41
40
 
42
41
  ```bash
43
42
  sppt install <url> # connect an existing repo
@@ -93,6 +92,8 @@ set-prompt link openclaw # link OpenClaw only
93
92
  set-prompt link codex # link Codex only
94
93
  set-prompt link antigravity # link Antigravity only
95
94
  set-prompt link cursor # link Cursor only
95
+ set-prompt link opencode # link OpenCode only
96
+ set-prompt link geminicli # link Gemini CLI only
96
97
  ```
97
98
 
98
99
  The interactive mode shows all agents with their current state. **Check to link, uncheck to unlink** — existing directories are backed up before being replaced.
@@ -105,13 +106,21 @@ The interactive mode shows all agents with their current state. **Check to link,
105
106
  | OpenClaw | dir symlinks into `~/.openclaw/workspace/` | `skills/` |
106
107
  | Antigravity | dir symlinks into `~/.gemini/antigravity/` | `skills/` |
107
108
  | Cursor | dir symlinks into `~/.cursor/` | `skills/`, `agents/`, `commands/`, `hooks/`, `mcp.json` (hardlink) |
109
+ | OpenCode | dir symlinks into `~/.config/opencode/` | `skills/`, `commands/`, `agents/` |
110
+ | Gemini CLI | dir symlinks into `~/.gemini/` | `skills/`, `commands/`, `agents/` |
108
111
 
109
112
  > **Note on Claude Code**: Operates as a plugin. Restart Claude Code after linking for the plugin to be recognized.
110
113
 
111
114
  > **Note on Codex**: Operates as a plugin. Restart Codex after linking — you may need to restart **twice** before the plugin is fully recognized.
112
115
 
116
+ > **Note on RooCode**: Skill directory names must use hyphens only — `my_skill` (underscore) silently fails to be recognized, while `my-skill` works. Hyphens work on every platform, so default to them.
117
+
113
118
  > **Note on Cursor**: Does not load `rules/` from symlinked directories. Use `.cursor/rules/` within each project instead, or manage rules via Cursor Settings.
114
119
 
120
+ > **Note on OpenCode**: Linked at `~/.config/opencode/` — OpenCode's default config directory, so no env var setup required.
121
+
122
+ > **Note on Gemini CLI**: Skills follow the standard `skills/<name>/SKILL.md` pattern. Commands use `.toml` format (not `.md`) and agents use `.md` with YAML frontmatter. Files in your repo's `commands/` must be TOML for Gemini CLI to recognize them. **Agents have strict frontmatter validation** — unknown keys (e.g. `allowed-tools`, `color`, `mode` from other platforms) cause Gemini CLI to reject the agent. See `SET_PROMPT_GUIDE.md` for the allowed keys.
123
+
115
124
  ---
116
125
 
117
126
  ### Step 3 — Keep in sync
@@ -134,7 +143,7 @@ set-prompt repo path # print repo location (e.g. cd "$(sppt rep
134
143
  set-prompt repo open # open repo in OS file manager (--code VSCode, --stree Sourcetree)
135
144
  ```
136
145
 
137
- Symlink-based agents (Claude Code, Codex, RooCode, OpenClaw, Antigravity) reflect changes immediately after pull. Cursor's `mcp.json` is a hardlink to repo's `.mcp.json`, so edits to either side are reflected automatically.
146
+ Symlink-based agents (Claude Code, Codex, RooCode, OpenClaw, Antigravity, OpenCode, Gemini CLI) reflect changes immediately after pull. Cursor's `mcp.json` is a hardlink to repo's `.mcp.json`, so edits to either side are reflected automatically.
138
147
 
139
148
  ---
140
149
 
@@ -209,6 +218,19 @@ set-prompt uninstall
209
218
  ├── commands/ → repo/commands
210
219
  ├── hooks/ → repo/hooks
211
220
  └── mcp.json ⇔ repo/.mcp.json (hardlink)
221
+
222
+ ~/.config/opencode/ # OpenCode (dir symlinks)
223
+ ├── SET_PROMPT_BACKUP/
224
+ ├── skills/ → repo/skills
225
+ ├── commands/ → repo/commands
226
+ └── agents/ → repo/agents
227
+
228
+ ~/.gemini/ # Gemini CLI (dir symlinks)
229
+ ├── SET_PROMPT_BACKUP/
230
+ ├── skills/ → repo/skills (Gemini reads SKILL.md)
231
+ ├── commands/ → repo/commands (Gemini reads *.toml)
232
+ ├── agents/ → repo/agents (Gemini reads *.md)
233
+ └── antigravity/ (Antigravity's own subtree, unrelated)
212
234
  ```
213
235
 
214
236
  ## Warning
@@ -221,6 +243,8 @@ set-prompt uninstall
221
243
  - **OpenClaw** — replaces directories in `~/.openclaw/workspace/`
222
244
  - **Antigravity** — replaces directories in `~/.gemini/antigravity/`
223
245
  - **Cursor** — replaces directories and `mcp.json` in `~/.cursor/`
246
+ - **OpenCode** — replaces directories in `~/.config/opencode/`
247
+ - **Gemini CLI** — replaces directories in `~/.gemini/` (`antigravity/` subtree untouched)
224
248
 
225
249
  Before making any changes, `set-prompt` creates a backup and rolls back automatically on failure. However, you should be aware that:
226
250
 
@@ -242,9 +266,7 @@ Use `set-prompt uninstall` to cleanly revert all changes.
242
266
  - Star this repo
243
267
  - Report bugs — open an [issue](https://github.com/juncha9/set-prompt/issues) with steps to reproduce
244
268
  - Request features — share ideas via [issues](https://github.com/juncha9/set-prompt/issues)
245
- - Submit a PR new agent integrations are welcome
246
-
247
- [![Sponsor](https://img.shields.io/badge/Sponsor-%E2%9D%A4-ea4aaa?logo=github-sponsors)](https://github.com/sponsors/juncha9)
269
+ - [Sponsor on GitHub](https://github.com/sponsors/juncha9) if the project saves you time
248
270
 
249
271
  ## Dev Commands
250
272
 
@@ -256,13 +278,6 @@ npm unlink -g set-prompt # Remove global CLI
256
278
  npm test # Run tests with vitest
257
279
  ```
258
280
 
259
- ## Contributing
260
-
261
- > Contribution guidelines are still being figured out. For now, feel free to open an issue to discuss ideas or report bugs.
262
-
263
- - Bug reports and feature requests → [GitHub Issues](https://github.com/juncha9/set-prompt/issues)
264
- - PRs for new agent integrations are especially appreciated
265
-
266
281
  ## License
267
282
 
268
283
  This project is licensed under the [MIT License](./LICENSE.md).