set-prompt 0.3.0 → 0.5.2

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
@@ -1,79 +1,131 @@
1
- # Changelog
2
-
3
- All notable changes to this project will be documented in this file.
4
-
5
- ---
6
-
7
- ## [0.3.0] - 2026-04-06
8
-
9
- ### Added
10
- - Antigravity integration (`link antigravity`) — symlinks `skills/` into `~/.gemini/antigravity/skills/` with backup/restore
11
- - `unlinkClaudeCode`, `unlinkRooCode`, `unlinkOpenclaw`, `unlinkAntigravity` — unlink functions with force mode
12
- - `link` command interactive mode now supports **deselection** unchecking a linked agent triggers unlink + backup restore
13
- - `uninstall` delegates to `unlinkXxx(true)` instead of inlining rollback logic
14
-
15
- ### Changed
16
- - `uninstall` no longer contains rollback logic all agent cleanup goes through `link-command.ts`
17
- - `AntigravityConfig` schema updated to include `backup_path` (consistent with RooCode/OpenClaw)
18
- - `AGENT_PROMPT_DIRS[ANTIGRAVITY]` set to `['skills']` only
19
- - `scaffold` always overwrites `SET_PROMPT_GUIDE.md` — ensures the latest template on every run
20
- - `SET_PROMPT_GUIDE.md` template updated: Antigravity frontmatter added, OpenClaw `homepage`/`user-invocable` fields added, `metadata` format corrected
21
- - `build` script now runs `rimraf dist` before `tsup`
22
- - README workflow restructured into 4 explicit steps
23
-
24
- ---
25
-
26
- ## [0.2.1] - 2026-04-02
27
-
28
- ### Changed
29
- - Add `repository`, `homepage`, `bugs` fields to `package.json` for npm registry links
30
- - Update package description to "Sync your prompt library across AI coding tools from a single git repo"
31
-
32
- ---
33
-
34
- ## [0.2.0] - 2026-04-02
35
-
36
- ### Added
37
- - `update` command — `git fetch` + `git pull` on the registered repo
38
- - `agents/` directory to scaffold structure (optional, Claude Code only)
39
- - Agents frontmatter section in `SET_PROMPT_GUIDE` template
40
- - `AGENT_PROMPT_DIRS` map — per-agent directory control (claudecode: all, roocode: skills+commands, openclaw: skills only)
41
- - OpenClaw integration (`link openclaw`) — symlinks `skills/` into `~/.openclaw/workspace/`
42
- - Backup/restore for OpenClaw (`SET_PROMPT_BACKUP/`)
43
-
44
- ### Changed
45
- - Backup folder renamed from `.set-prompt-backup` `SET_PROMPT_BACKUP`
46
- - `SET_PROMPT_GUIDE` template: `set-prompt.yaml` → `set-prompt.toml`, updated structure and usage
47
- - `vitest` reporter set to `--reporter=verbose`
48
- - `.npmignore`: added `tests/`, fixed `CLAUDE.md` entry, removed redundant entries
49
-
50
- ### Fixed
51
- - `link roocode` no longer symlinks `hooks/` (RooCode does not support it)
52
-
53
- ---
54
-
55
- ## [0.1.0] - 2026-03
56
-
57
- ### Added
58
- - RooCode integration (`link roocode`) — symlinks into `~/.roo/` with backup/restore
59
- - Codex and Antigravity stubs
60
- - `status` command
61
- - `uninstall` command with rollback support for Claude Code and RooCode
62
- - `vitest` test infrastructure with `memfs`
63
- - Cross-platform symlink support (Windows junction)
64
-
65
- ### Changed
66
- - Config format migrated from TOML to JSON (`~/.set-prompt/config.json`)
67
- - CLI refactored to `commander` with subcommands
68
- - Build system migrated to `tsup`
69
- - `ConfigManager` class introduced for typed config management
70
-
71
- ---
72
-
73
- ## [0.0.1] - 2026-03
74
-
75
- ### Added
76
- - Initial project setup (TypeScript + Commander)
77
- - `scaffold` command
78
- - `install` command — clone remote git repo into `~/.set-prompt/repo/`
79
- - `link claudecode` — Claude Code plugin structure at `~/.set-prompt/claudecode/`
1
+ # Changelog
2
+
3
+ All notable changes to this project will be documented in this file.
4
+
5
+ ---
6
+
7
+ ## [0.5.0] - 2026-04-13
8
+
9
+ ### Added
10
+ - Codex integration (`link codex`) — marketplace registration, cache symlink, `config.toml` activation
11
+ - `scaffold` now generates `.claude-plugin/plugin.json`, `.codex-plugin/plugin.json`, `mcp.json`, `.app.json`
12
+ - `ensureClaudePluginManifest()`, `ensureCodexPluginManifest()`, `ensureMcpJson()`, `ensureAppJson()` reusable functions for link to ensure repo has required files
13
+ - `SET_PROMPT_GUIDE.md` generation now asks for confirmation before writing
14
+ - Cursor: `mcp.json` hardlink (`~/.cursor/mcp.json ⇔ repo/mcp.json`) with backup/restore
15
+ - Cursor: `hooks/` directory linking added
16
+ - `templates.ts`: Cursor frontmatter (skills, agents, rules, hooks), Cursor hooks (JSON-based `hooks.json`), Codex plugin spec
17
+ - Tests split by agent: `link-claude-code.test.ts`, `link-roocode.test.ts`, `link-openclaw.test.ts`, `link-antigravity.test.ts`, `link-codex.test.ts`, `link-cursor.test.ts`
18
+
19
+ ### Changed
20
+ - **Link architecture**: `scaffold` creates plugin manifests in repo, `link` symlinks repo directly (no intermediate plugin structure)
21
+ - Claude Code: marketplace `plugins/sppt` repo symlink; `installed_plugins.json` points to repo directly
22
+ - Codex: `~/.agents/plugins/marketplace.json` + `~/.codex/plugins/cache/.../1.0.0` repo symlink
23
+ - Cursor: reverted from plugin to dir symlinks (`~/.cursor/skills/`, `agents/`, `commands/`, `hooks/`)
24
+ - `CODEX_DIR` changed from `~/.codex` to `~/.set-prompt/codex` (no longer deletes Codex home directory on unlink)
25
+ - `scaffold`: removed `--force` option and `valid` check — always runs all steps idempotently
26
+ - All symlinks use `junction` on Windows (consistent across agents)
27
+ - All JSON output uses 4-space indentation
28
+ - `CURSOR_PLUGIN_DIR` removed from `_defs` (Cursor no longer uses plugin approach)
29
+ - `link/` source files moved from `src/commands/link/` to `src/link/`
30
+ - Uninstall tests: removed redundant per-agent unlink call assertions
31
+
32
+ ### Removed
33
+ - `ensureCursorPluginManifest()` — Cursor no longer uses plugin manifests
34
+ - Cursor `rules/` from `AGENT_PROMPT_DIRS` — Cursor does not load rules from symlinked directories
35
+
36
+ ---
37
+
38
+ ## [0.4.0] - 2026-04-10
39
+
40
+ ### Added
41
+ - Cursor integration (`link cursor`) — creates plugin structure at `~/.cursor/` with backup/restore
42
+ - `linkCommand` now shows a Link / Unlink summary before executing; exits early when there are no changes
43
+ - All `unlink*` functions print a colored header banner on start (consistent with `link*`)
44
+ - Console output: `removed` → red, `restored` → green, `backed up` → yellow
45
+ - Console output: `Config loaded` is now green (consistent with `Config saved`)
46
+
47
+ ### Changed
48
+ - Claude Code plugin: `~/.claude/plugins/installed_plugins.json` is now directly patched so `installPath` points to the source plugin directory — bypasses Claude Code's cache management that was deleting the symlink on startup
49
+ - `install`: re-installing the same URL is blocked with a `set-prompt update` hint
50
+ - `install`: re-installing a different URL shows a "Switching repo" warning with confirmation (default: No)
51
+ - `install`: EPERM on directory rename is handled gracefully with a descriptive error message
52
+ - `install`: existing repo backup is automatically removed after a successful clone
53
+
54
+ ### Disabled
55
+ - `link codex` is temporarily unavailable in this release (implementation preserved, re-enable in next release)
56
+
57
+ ---
58
+
59
+ ## [0.3.0] - 2026-04-06
60
+
61
+ ### Added
62
+ - Antigravity integration (`link antigravity`) symlinks `skills/` into `~/.gemini/antigravity/skills/` with backup/restore
63
+ - `unlinkClaudeCode`, `unlinkRooCode`, `unlinkOpenclaw`, `unlinkAntigravity` — unlink functions with force mode
64
+ - `link` command interactive mode now supports **deselection** — unchecking a linked agent triggers unlink + backup restore
65
+ - `uninstall` delegates to `unlinkXxx(true)` instead of inlining rollback logic
66
+
67
+ ### Changed
68
+ - `uninstall` no longer contains rollback logic — all agent cleanup goes through `link-command.ts`
69
+ - `AntigravityConfig` schema updated to include `backup_path` (consistent with RooCode/OpenClaw)
70
+ - `AGENT_PROMPT_DIRS[ANTIGRAVITY]` set to `['skills']` only
71
+ - `scaffold` always overwrites `SET_PROMPT_GUIDE.md` — ensures the latest template on every run
72
+ - `SET_PROMPT_GUIDE.md` template updated: Antigravity frontmatter added, OpenClaw `homepage`/`user-invocable` fields added, `metadata` format corrected
73
+ - `build` script now runs `rimraf dist` before `tsup`
74
+ - README workflow restructured into 4 explicit steps
75
+
76
+ ---
77
+
78
+ ## [0.2.1] - 2026-04-02
79
+
80
+ ### Changed
81
+ - Add `repository`, `homepage`, `bugs` fields to `package.json` for npm registry links
82
+ - Update package description to "Sync your prompt library across AI coding tools from a single git repo"
83
+
84
+ ---
85
+
86
+ ## [0.2.0] - 2026-04-02
87
+
88
+ ### Added
89
+ - `update` command — `git fetch` + `git pull` on the registered repo
90
+ - `agents/` directory to scaffold structure (optional, Claude Code only)
91
+ - Agents frontmatter section in `SET_PROMPT_GUIDE` template
92
+ - `AGENT_PROMPT_DIRS` map — per-agent directory control (claudecode: all, roocode: skills+commands, openclaw: skills only)
93
+ - OpenClaw integration (`link openclaw`) — symlinks `skills/` into `~/.openclaw/workspace/`
94
+ - Backup/restore for OpenClaw (`SET_PROMPT_BACKUP/`)
95
+
96
+ ### Changed
97
+ - Backup folder renamed from `.set-prompt-backup` → `SET_PROMPT_BACKUP`
98
+ - `SET_PROMPT_GUIDE` template: `set-prompt.yaml` → `set-prompt.toml`, updated structure and usage
99
+ - `vitest` reporter set to `--reporter=verbose`
100
+ - `.npmignore`: added `tests/`, fixed `CLAUDE.md` entry, removed redundant entries
101
+
102
+ ### Fixed
103
+ - `link roocode` no longer symlinks `hooks/` (RooCode does not support it)
104
+
105
+ ---
106
+
107
+ ## [0.1.0] - 2026-03
108
+
109
+ ### Added
110
+ - RooCode integration (`link roocode`) — symlinks into `~/.roo/` with backup/restore
111
+ - Codex and Antigravity stubs
112
+ - `status` command
113
+ - `uninstall` command with rollback support for Claude Code and RooCode
114
+ - `vitest` test infrastructure with `memfs`
115
+ - Cross-platform symlink support (Windows junction)
116
+
117
+ ### Changed
118
+ - Config format migrated from TOML to JSON (`~/.set-prompt/config.json`)
119
+ - CLI refactored to `commander` with subcommands
120
+ - Build system migrated to `tsup`
121
+ - `ConfigManager` class introduced for typed config management
122
+
123
+ ---
124
+
125
+ ## [0.0.1] - 2026-03
126
+
127
+ ### Added
128
+ - Initial project setup (TypeScript + Commander)
129
+ - `scaffold` command
130
+ - `install` command — clone remote git repo into `~/.set-prompt/repo/`
131
+ - `link claudecode` — Claude Code plugin structure at `~/.set-prompt/claudecode/`
package/README.md CHANGED
@@ -1,27 +1,33 @@
1
- # Set Prompt 🏠
1
+ # Set Prompt
2
2
 
3
3
  As you work with AI agents, you build up your own prompt set — skills, commands, and workflows tailored to how you work.
4
4
 
5
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.
6
6
 
7
- `set-prompt` was built to solve this. It maintains a single git repository of prompts and symlinks 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.
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.
8
8
 
9
9
  One repo. Every agent. Always in sync.
10
10
 
11
11
  ```
12
- my-prompts/ (git repo)
13
- ├── skills/
14
- ├── commands/
15
- └── hooks/
16
-
17
- ┌────────────────┼─────────────────┬─────────────────┐
18
- ▼ ▼ ▼ ▼
19
- ~/.set-prompt/ ~/.roo/ ~/.openclaw/ ~/.gemini/
20
- claudecode/ workspace/ antigravity/
21
- (Claude Code plugin) (symlinks) (symlinks) (symlinks)
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)
22
28
  ```
23
29
 
24
- ## 📦 Installation
30
+ ## Installation
25
31
 
26
32
  ```bash
27
33
  npm install -g set-prompt
@@ -29,23 +35,19 @@ npm install -g set-prompt
29
35
  npx set-prompt <command>
30
36
  ```
31
37
 
32
- ## 🚀 Workflow
38
+ ## CLI Alias
33
39
 
34
- ### Step 1 Install set-prompt
40
+ `sppt` is a built-in short alias for `set-prompt` — all commands work with either name:
35
41
 
36
42
  ```bash
37
- npm install -g set-prompt
38
- ```
39
-
40
- Or run without installing:
41
-
42
- ```bash
43
- npx set-prompt <command>
43
+ sppt install <url> # connect an existing repo
44
+ sppt link # link to AI agents
45
+ sppt update # pull latest changes
44
46
  ```
45
47
 
46
- ---
48
+ ## Workflow
47
49
 
48
- ### Step 2 — Connect your prompt repository
50
+ ### Step 1 — Connect your prompt repository
49
51
 
50
52
  Point `set-prompt` at a git repo containing your prompts. It clones it to `~/.set-prompt/repo/` and registers it as your prompt source.
51
53
 
@@ -60,36 +62,62 @@ mkdir my-prompts && cd my-prompts && git init
60
62
  set-prompt scaffold .
61
63
  ```
62
64
 
63
- This creates the expected directory structure:
65
+ This creates the expected directory structure with plugin manifests:
64
66
 
65
67
  ```
66
68
  my-prompts/
67
69
  ├── skills/
68
70
  ├── commands/
69
71
  ├── hooks/
70
- └── agents/
72
+ ├── agents/
73
+ ├── rules/
74
+ ├── mcp.json
75
+ ├── .app.json
76
+ ├── .claude-plugin/plugin.json
77
+ ├── .codex-plugin/plugin.json
78
+ └── SET_PROMPT_GUIDE.md (optional reference doc)
71
79
  ```
72
80
 
73
81
  ---
74
82
 
75
- ### Step 3 — Link to AI agents 🔗
83
+ ### Step 2 — Link to AI agents
76
84
 
77
85
  ```bash
78
86
  set-prompt link # interactive checkbox — select agents to link
79
87
  set-prompt link claudecode # link Claude Code only
80
88
  set-prompt link roocode # link RooCode only
81
89
  set-prompt link openclaw # link OpenClaw only
90
+ set-prompt link codex # link Codex only
82
91
  set-prompt link antigravity # link Antigravity only
92
+ set-prompt link cursor # link Cursor only
83
93
  ```
84
94
 
85
95
  The interactive mode shows all agents with their current state. **Check to link, uncheck to unlink** — existing directories are backed up before being replaced.
86
96
 
87
- | Agent | Where prompts land | What gets linked |
97
+ | Agent | Method | What gets linked |
88
98
  |---|---|---|
89
- | Claude Code | `~/.set-prompt/claudecode/` (plugin) | `skills/`, `commands/`, `hooks/`, `agents/` |
90
- | RooCode | `~/.roo/` | `skills/`, `commands/` |
91
- | OpenClaw | `~/.openclaw/workspace/` | `skills/` |
92
- | Antigravity | `~/.gemini/antigravity/` | `skills/` |
99
+ | Claude Code | marketplace + repo symlink | repo via `~/.set-prompt/claude-code/plugins/sppt` |
100
+ | Codex | marketplace + cache symlink | repo via `~/.agents/plugins/` + `~/.codex/plugins/cache/` |
101
+ | RooCode | dir symlinks into `~/.roo/` | `skills/`, `commands/` |
102
+ | OpenClaw | dir symlinks into `~/.openclaw/workspace/` | `skills/` |
103
+ | Antigravity | dir symlinks into `~/.gemini/antigravity/` | `skills/` |
104
+ | Cursor | dir symlinks into `~/.cursor/` | `skills/`, `agents/`, `commands/`, `hooks/`, `mcp.json` (hardlink) |
105
+
106
+ > **Note on Claude Code**: Operates as a plugin. Restart Claude Code after linking for the plugin to be recognized.
107
+
108
+ > **Note on Codex**: Operates as a plugin. Restart Codex after linking — you may need to restart **twice** before the plugin is fully recognized.
109
+
110
+ > **Note on Cursor**: Does not load `rules/` from symlinked directories. Use `.cursor/rules/` within each project instead, or manage rules via Cursor Settings.
111
+
112
+ ---
113
+
114
+ ### Step 3 — Keep in sync
115
+
116
+ ```bash
117
+ set-prompt update # git pull latest changes from remote
118
+ ```
119
+
120
+ Symlink-based agents (Claude Code, Codex, RooCode, OpenClaw, Antigravity) reflect changes immediately after pull. Cursor's `mcp.json` is a hardlink, so edits to either side are reflected automatically.
93
121
 
94
122
  ---
95
123
 
@@ -101,7 +129,7 @@ Removes all set-prompt data, reverts symlinks, and restores any backed-up direct
101
129
  set-prompt uninstall
102
130
  ```
103
131
 
104
- ## 📋 Commands
132
+ ## Commands
105
133
 
106
134
  | Command | Description |
107
135
  |---------|-------------|
@@ -109,41 +137,67 @@ set-prompt uninstall
109
137
  | `link [agent]` | Link/unlink agents interactively, or target one directly |
110
138
  | `update` | Fetch and pull latest changes from remote repo |
111
139
  | `status` | Show current repo and linked agents |
112
- | `scaffold [path]` | Verify and create required directories in a prompt repo |
140
+ | `scaffold [path]` | Create directories and plugin manifests in a prompt repo |
113
141
  | `uninstall` | Remove all set-prompt data and restore backups |
114
142
 
115
- ## Support
116
-
117
- `set-prompt` is a solo side project. I have a full-time job, so there are weeks where I can't touch it — but I read every issue and do my best to respond as quickly as I can. Your support genuinely makes a difference in how much time I can dedicate to this.
143
+ ## What Gets Created
118
144
 
119
- **Ways to help:**
120
-
121
- - ⭐ **Star this repo** — the simplest thing, and it helps more than you'd think
122
- - 🐛 **Report bugs** — open an [issue](https://github.com/juncha9/set-prompt/issues) with steps to reproduce
123
- - 💡 **Request features** — share ideas or use cases via [issues](https://github.com/juncha9/set-prompt/issues)
124
- - 🔧 **Submit a PR** — new agent integrations (Codex, Antigravity, ...) are especially welcome
125
- - ☕ **Sponsor** — if `set-prompt` saves you time, buying me a coffee means I can keep working on it
126
-
127
- [![Sponsor](https://img.shields.io/badge/Sponsor-%E2%9D%A4-ea4aaa?logo=github-sponsors)](https://github.com/sponsors/juncha9)
128
-
129
- ## 💻 Dev Commands
130
-
131
- ```bash
132
- npx tsx src/index.ts <command> # Run without building
133
- npm run build # tsup + copy templates
134
- npm link # Register as global CLI (set-prompt)
135
- npm unlink -g set-prompt # Remove global CLI
136
- npm test # Run tests with vitest
137
- .\tests\test-cli.ps1 # Integration tests (PowerShell)
145
+ ```
146
+ ~/.set-prompt/
147
+ ├── config.json
148
+ ├── repo/ # cloned prompt repository
149
+ │ ├── skills/
150
+ │ ├── commands/
151
+ │ ├── hooks/
152
+ │ ├── agents/
153
+ │ ├── rules/
154
+ │ ├── mcp.json
155
+ │ ├── .app.json
156
+ │ ├── .claude-plugin/plugin.json
157
+ │ └── .codex-plugin/plugin.json
158
+ └── claude-code/ # Claude Code marketplace
159
+ ├── .claude-plugin/marketplace.json
160
+ └── plugins/sppt repo (symlink)
161
+
162
+ ~/.roo/ # RooCode (dir symlinks)
163
+ ├── SET_PROMPT_BACKUP/
164
+ ├── skills/ → repo/skills
165
+ └── commands/ → repo/commands
166
+
167
+ ~/.openclaw/workspace/ # OpenClaw (dir symlinks)
168
+ ├── SET_PROMPT_BACKUP/
169
+ └── skills/ → repo/skills
170
+
171
+ ~/.gemini/antigravity/ # Antigravity (dir symlinks)
172
+ ├── SET_PROMPT_BACKUP/
173
+ └── skills/ → repo/skills
174
+
175
+ ~/.agents/plugins/ # Codex marketplace
176
+ └── marketplace.json
177
+
178
+ ~/.codex/
179
+ ├── config.toml # plugin enabled
180
+ └── plugins/cache/local-repo/sppt/1.0.0 → repo (symlink)
181
+
182
+ ~/.cursor/ # Cursor (dir symlinks)
183
+ ├── SET_PROMPT_BACKUP/
184
+ ├── skills/ → repo/skills
185
+ ├── agents/ → repo/agents
186
+ ├── commands/ → repo/commands
187
+ ├── hooks/ → repo/hooks
188
+ └── mcp.json ⇔ repo/mcp.json (hardlink)
138
189
  ```
139
190
 
140
- ## ⚠️ Warning
191
+ ## Warning
141
192
 
142
193
  `set-prompt` modifies configuration files managed by third-party AI agent applications:
143
194
 
144
- - **Claude Code** — writes to `~/.claude/settings.json`
195
+ - **Claude Code** — writes to `~/.claude/settings.json` and `~/.claude/plugins/installed_plugins.json`
196
+ - **Codex** — writes to `~/.agents/plugins/marketplace.json` and `~/.codex/config.toml`
145
197
  - **RooCode** — replaces directories in `~/.roo/`
146
198
  - **OpenClaw** — replaces directories in `~/.openclaw/workspace/`
199
+ - **Antigravity** — replaces directories in `~/.gemini/antigravity/`
200
+ - **Cursor** — replaces directories and mcp.json in `~/.cursor/`
147
201
 
148
202
  Before making any changes, `set-prompt` creates a backup and rolls back automatically on failure. However, you should be aware that:
149
203
 
@@ -152,59 +206,41 @@ Before making any changes, `set-prompt` creates a backup and rolls back automati
152
206
 
153
207
  Use `set-prompt uninstall` to cleanly revert all changes.
154
208
 
155
- ## 📁 What Gets Created
209
+ ## Requirements
156
210
 
157
- Stored at `~/.set-prompt/config.json`, managed via `ConfigManager`.
211
+ - **Node.js** 18+
212
+ - **Git** (must be available in `PATH` for `set-prompt install`)
213
+ - **Windows only**: symlink creation requires Developer Mode enabled or running as Administrator (Linux/macOS work out of the box)
158
214
 
159
- ```
160
- ~/.set-prompt/
161
- ├── config.json # repo_path, remote_url, linked agent state
162
- ├── repo/ # remote repos cloned here
163
- │ └── <repo-name>/
164
- │ ├── skills/
165
- │ ├── commands/
166
- │ └── hooks/
167
- └── claudecode/ # Claude Code plugin output
168
- ├── .claude-plugin/
169
- │ └── marketplace.json
170
- └── plugins/set-prompt/
171
- ├── .claude-plugin/plugin.json
172
- ├── skills/ → symlink to repo/skills/
173
- ├── commands/ → symlink to repo/commands/
174
- └── hooks/ → symlink to repo/hooks/
175
-
176
- ~/.roo/ # RooCode integration (symlinks)
177
- ├── SET_PROMPT_BACKUP/ # backup of original dirs before linking
178
- │ ├── skills/
179
- │ └── commands/
180
- ├── skills/ → symlink to repo/skills/
181
- └── commands/ → symlink to repo/commands/
182
-
183
- ~/.openclaw/workspace/ # OpenClaw integration (symlinks)
184
- ├── SET_PROMPT_BACKUP/ # backup of original dirs before linking
185
- │ └── skills/
186
- └── skills/ → symlink to repo/skills/
187
-
188
- ~/.gemini/antigravity/ # Antigravity integration (symlinks)
189
- ├── SET_PROMPT_BACKUP/ # backup of original dirs before linking
190
- │ └── skills/
191
- └── skills/ → symlink to repo/skills/
192
- ```
215
+ ## Support
193
216
 
194
- ## 🖥️ Requirements
217
+ `set-prompt` is a solo side project. Your support genuinely makes a difference.
195
218
 
196
- - **Node.js** 18+
197
- - **Git** (must be available in `PATH` for `set-prompt install`)
198
- - **Windows**: symlink creation requires either Developer Mode enabled or running as Administrator
219
+ - Star this repo
220
+ - Report bugs open an [issue](https://github.com/juncha9/set-prompt/issues) with steps to reproduce
221
+ - Request features share ideas via [issues](https://github.com/juncha9/set-prompt/issues)
222
+ - Submit a PR — new agent integrations are welcome
223
+
224
+ [![Sponsor](https://img.shields.io/badge/Sponsor-%E2%9D%A4-ea4aaa?logo=github-sponsors)](https://github.com/sponsors/juncha9)
225
+
226
+ ## Dev Commands
227
+
228
+ ```bash
229
+ npx tsx src/index.ts <command> # Run without building
230
+ npm run build # tsup build
231
+ npm link # Register as global CLI
232
+ npm unlink -g set-prompt # Remove global CLI
233
+ npm test # Run tests with vitest
234
+ ```
199
235
 
200
- ## 🤝 Contributing
236
+ ## Contributing
201
237
 
202
238
  > Contribution guidelines are still being figured out. For now, feel free to open an issue to discuss ideas or report bugs.
203
239
 
204
240
  - Bug reports and feature requests → [GitHub Issues](https://github.com/juncha9/set-prompt/issues)
205
- - PRs for new agent integrations (OpenClaw, Codex, Antigravity, etc.) are especially appreciated
241
+ - PRs for new agent integrations are especially appreciated
206
242
 
207
- ## 📄 License
243
+ ## License
208
244
 
209
245
  This project is licensed under the [MIT License](./LICENSE.md).
210
- © 2026 [juncha9](https://github.com/juncha9)
246
+ (c) 2026 [juncha9](https://github.com/juncha9)