skill-flow 1.0.8 → 1.3.3
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 +209 -131
- package/README.zh.md +170 -131
- package/dist/bridge-command.d.ts +9 -0
- package/dist/bridge-command.js +422 -0
- package/dist/bridge-command.js.map +1 -0
- package/dist/cli.js +68 -8
- package/dist/cli.js.map +1 -1
- package/package.json +11 -2
- package/dist/adapters/channel-adapters.d.ts +0 -8
- package/dist/adapters/channel-adapters.js +0 -64
- package/dist/adapters/channel-adapters.js.map +0 -1
- package/dist/domain/types.d.ts +0 -234
- package/dist/domain/types.js +0 -2
- package/dist/domain/types.js.map +0 -1
- package/dist/services/config-coordinator.d.ts +0 -38
- package/dist/services/config-coordinator.js +0 -83
- package/dist/services/config-coordinator.js.map +0 -1
- package/dist/services/deployment-applier.d.ts +0 -10
- package/dist/services/deployment-applier.js +0 -84
- package/dist/services/deployment-applier.js.map +0 -1
- package/dist/services/deployment-planner.d.ts +0 -16
- package/dist/services/deployment-planner.js +0 -366
- package/dist/services/deployment-planner.js.map +0 -1
- package/dist/services/doctor-service.d.ts +0 -7
- package/dist/services/doctor-service.js +0 -204
- package/dist/services/doctor-service.js.map +0 -1
- package/dist/services/inventory-service.d.ts +0 -17
- package/dist/services/inventory-service.js +0 -216
- package/dist/services/inventory-service.js.map +0 -1
- package/dist/services/skill-flow.d.ts +0 -136
- package/dist/services/skill-flow.js +0 -1210
- package/dist/services/skill-flow.js.map +0 -1
- package/dist/services/source-service.d.ts +0 -57
- package/dist/services/source-service.js +0 -809
- package/dist/services/source-service.js.map +0 -1
- package/dist/services/workflow-service.d.ts +0 -5
- package/dist/services/workflow-service.js +0 -45
- package/dist/services/workflow-service.js.map +0 -1
- package/dist/services/workspace-bootstrap-service.d.ts +0 -25
- package/dist/services/workspace-bootstrap-service.js +0 -140
- package/dist/services/workspace-bootstrap-service.js.map +0 -1
- package/dist/state/store.d.ts +0 -35
- package/dist/state/store.js +0 -151
- package/dist/state/store.js.map +0 -1
- package/dist/tests/add-flow-model.test.d.ts +0 -1
- package/dist/tests/add-flow-model.test.js +0 -108
- package/dist/tests/add-flow-model.test.js.map +0 -1
- package/dist/tests/add-flow-ui.test.d.ts +0 -1
- package/dist/tests/add-flow-ui.test.js +0 -16
- package/dist/tests/add-flow-ui.test.js.map +0 -1
- package/dist/tests/add-prepare-flow.test.d.ts +0 -1
- package/dist/tests/add-prepare-flow.test.js +0 -166
- package/dist/tests/add-prepare-flow.test.js.map +0 -1
- package/dist/tests/add-selection-and-find-command.test.d.ts +0 -1
- package/dist/tests/add-selection-and-find-command.test.js +0 -89
- package/dist/tests/add-selection-and-find-command.test.js.map +0 -1
- package/dist/tests/clawhub.test.d.ts +0 -1
- package/dist/tests/clawhub.test.js +0 -63
- package/dist/tests/clawhub.test.js.map +0 -1
- package/dist/tests/cli-utils.test.d.ts +0 -1
- package/dist/tests/cli-utils.test.js +0 -24
- package/dist/tests/cli-utils.test.js.map +0 -1
- package/dist/tests/config-coordinator.test.d.ts +0 -1
- package/dist/tests/config-coordinator.test.js +0 -219
- package/dist/tests/config-coordinator.test.js.map +0 -1
- package/dist/tests/config-integration.test.d.ts +0 -1
- package/dist/tests/config-integration.test.js +0 -276
- package/dist/tests/config-integration.test.js.map +0 -1
- package/dist/tests/config-ui-utils.test.d.ts +0 -1
- package/dist/tests/config-ui-utils.test.js +0 -523
- package/dist/tests/config-ui-utils.test.js.map +0 -1
- package/dist/tests/find-and-naming-utils.test.d.ts +0 -1
- package/dist/tests/find-and-naming-utils.test.js +0 -127
- package/dist/tests/find-and-naming-utils.test.js.map +0 -1
- package/dist/tests/inventory-service-precedence.test.d.ts +0 -1
- package/dist/tests/inventory-service-precedence.test.js +0 -42
- package/dist/tests/inventory-service-precedence.test.js.map +0 -1
- package/dist/tests/skill-flow.test.d.ts +0 -1
- package/dist/tests/skill-flow.test.js +0 -991
- package/dist/tests/skill-flow.test.js.map +0 -1
- package/dist/tests/source-lifecycle.test.d.ts +0 -1
- package/dist/tests/source-lifecycle.test.js +0 -644
- package/dist/tests/source-lifecycle.test.js.map +0 -1
- package/dist/tests/source-parsing-compatibility.test.d.ts +0 -1
- package/dist/tests/source-parsing-compatibility.test.js +0 -72
- package/dist/tests/source-parsing-compatibility.test.js.map +0 -1
- package/dist/tests/target-definitions.test.d.ts +0 -1
- package/dist/tests/target-definitions.test.js +0 -51
- package/dist/tests/target-definitions.test.js.map +0 -1
- package/dist/tests/test-helpers.d.ts +0 -18
- package/dist/tests/test-helpers.js +0 -123
- package/dist/tests/test-helpers.js.map +0 -1
- package/dist/tui/add-flow-model.d.ts +0 -62
- package/dist/tui/add-flow-model.js +0 -206
- package/dist/tui/add-flow-model.js.map +0 -1
- package/dist/tui/add-flow.d.ts +0 -25
- package/dist/tui/add-flow.js +0 -534
- package/dist/tui/add-flow.js.map +0 -1
- package/dist/tui/config-app.d.ts +0 -178
- package/dist/tui/config-app.js +0 -1551
- package/dist/tui/config-app.js.map +0 -1
- package/dist/tui/find-app.d.ts +0 -9
- package/dist/tui/find-app.js +0 -150
- package/dist/tui/find-app.js.map +0 -1
- package/dist/tui/selection-state.d.ts +0 -8
- package/dist/tui/selection-state.js +0 -32
- package/dist/tui/selection-state.js.map +0 -1
- package/dist/utils/builtin-git-sources.d.ts +0 -5
- package/dist/utils/builtin-git-sources.js +0 -23
- package/dist/utils/builtin-git-sources.js.map +0 -1
- package/dist/utils/clawhub.d.ts +0 -41
- package/dist/utils/clawhub.js +0 -94
- package/dist/utils/clawhub.js.map +0 -1
- package/dist/utils/cli.d.ts +0 -2
- package/dist/utils/cli.js +0 -19
- package/dist/utils/cli.js.map +0 -1
- package/dist/utils/constants.d.ts +0 -23
- package/dist/utils/constants.js +0 -195
- package/dist/utils/constants.js.map +0 -1
- package/dist/utils/find-command.d.ts +0 -2
- package/dist/utils/find-command.js +0 -29
- package/dist/utils/find-command.js.map +0 -1
- package/dist/utils/format.d.ts +0 -7
- package/dist/utils/format.js +0 -68
- package/dist/utils/format.js.map +0 -1
- package/dist/utils/fs.d.ts +0 -16
- package/dist/utils/fs.js +0 -144
- package/dist/utils/fs.js.map +0 -1
- package/dist/utils/git.d.ts +0 -3
- package/dist/utils/git.js +0 -12
- package/dist/utils/git.js.map +0 -1
- package/dist/utils/github-catalog.d.ts +0 -1
- package/dist/utils/github-catalog.js +0 -25
- package/dist/utils/github-catalog.js.map +0 -1
- package/dist/utils/naming.d.ts +0 -29
- package/dist/utils/naming.js +0 -115
- package/dist/utils/naming.js.map +0 -1
- package/dist/utils/result.d.ts +0 -4
- package/dist/utils/result.js +0 -15
- package/dist/utils/result.js.map +0 -1
- package/dist/utils/source-id.d.ts +0 -2
- package/dist/utils/source-id.js +0 -49
- package/dist/utils/source-id.js.map +0 -1
package/README.md
CHANGED
|
@@ -1,200 +1,278 @@
|
|
|
1
1
|
# Skill Flow
|
|
2
2
|
|
|
3
|
-
>
|
|
4
|
-
> Skill grouping · Deploy everywhere · Clear config · Quick diagnosis
|
|
3
|
+
<div align="center">
|
|
5
4
|
|
|
6
|
-
|
|
5
|
+
Turn scattered AI agent skills into organized workflows.
|
|
7
6
|
|
|
8
|
-
[
|
|
7
|
+
[中文](./README.zh.md) · [日本語](./README.ja.md)
|
|
9
8
|
|
|
10
|
-
[](https://nodejs.org)
|
|
10
|
+
[](https://www.npmjs.com/package/skill-flow)
|
|
11
11
|
[](./LICENSE)
|
|
12
12
|
|
|
13
|
-
|
|
13
|
+
<img src="./img/img-icon.png" alt="Skill Flow icon" width="120" />
|
|
14
14
|
|
|
15
|
-
|
|
15
|
+
</div>
|
|
16
16
|
|
|
17
|
-
|
|
17
|
+
Install, manage, and share skills across every major coding agent — Claude Code, Cursor, Copilot, Trae, and more.
|
|
18
18
|
|
|
19
|
-
|
|
19
|
+
Search and import skills from skills.sh, GitHub, or local sources. Deploy to multiple agents at once. Keep everything organized and up to date.
|
|
20
20
|
|
|
21
|
-
|
|
22
|
-
One Git repo = one skills group. Related skills stay together, updates and maintenance happen at the group level.
|
|
21
|
+

|
|
23
22
|
|
|
24
|
-
|
|
25
|
-
Set it up once, deploy to multiple agents (Claude Code, Cursor, Windsurf, and 13+ targets).
|
|
23
|
+
## Why This Exists
|
|
26
24
|
|
|
27
|
-
|
|
28
|
-
Intuitive TUI: view groups → select skills → choose targets → save configuration.
|
|
25
|
+
Installing skills one by one breaks down at scale:
|
|
29
26
|
|
|
30
|
-
|
|
31
|
-
|
|
27
|
+
- Repos contain multiple related skills, but you install them separately
|
|
28
|
+
- Different agents expect different locations
|
|
29
|
+
- Updates drift silently
|
|
30
|
+
- Unmanaged folders accumulate
|
|
31
|
+
- Nobody tracks what's actually deployed
|
|
32
32
|
|
|
33
|
-
|
|
34
|
-
`manifest.json` = what you want, `lock.json` = what's actually installed. Both are readable and queryable.
|
|
33
|
+
`skill-flow` preserves the workflow group. One source remains one cohesive unit—inspect it, select skills, deploy to multiple targets, update cleanly, and always know your state.
|
|
35
34
|
|
|
36
|
-
|
|
37
|
-
`doctor` catches broken links, mismatches, and conflicts — tells you exactly what's wrong.
|
|
35
|
+
## What You Get
|
|
38
36
|
|
|
39
|
-
|
|
37
|
+
- **Grouped source management**: local, Git, and skills.sh sources all flow through the same import model.
|
|
38
|
+
- **Multi-agent deployment**: deploy one selected skill set to Claude Code, Codex, Cursor, Gemini CLI, OpenCode, OpenClaw, Trae, Windsurf, and more.
|
|
39
|
+
- **Interactive config flow**: Ink-based TUI for add/config flows, selection state, review, and repair.
|
|
40
|
+
- **Desktop app on macOS 15+**: SwiftUI main window, import view, detail panel, settings, and menu bar quick config.
|
|
41
|
+
- **Explicit state**: `manifest.json` stores intent, `lock.json` stores resolved inventory and deployments.
|
|
42
|
+
- **Bridge protocol**: machine-readable desktop/helper entrypoint via `skill-flow bridge --json`.
|
|
43
|
+
- **Repair and diagnosis**: `doctor`, `repair-source`, `repair-state`, and `repair-targets` cover the parts that usually rot first.
|
|
40
44
|
|
|
41
|
-
|
|
45
|
+
## Interface Preview
|
|
42
46
|
|
|
43
|
-
|
|
47
|
+
| Menu Bar | Import |
|
|
48
|
+
| --- | --- |
|
|
49
|
+
|  |  |
|
|
50
|
+
|
|
51
|
+
| Detail | Settings |
|
|
52
|
+
| --- | --- |
|
|
53
|
+
|  |  |
|
|
54
|
+
|
|
55
|
+
## Quick Start
|
|
56
|
+
|
|
57
|
+
### Install
|
|
44
58
|
|
|
45
59
|
```bash
|
|
46
60
|
npm install -g skill-flow
|
|
47
61
|
skill-flow --help
|
|
48
62
|
```
|
|
49
63
|
|
|
50
|
-
|
|
64
|
+
Or run without a global install:
|
|
51
65
|
|
|
52
66
|
```bash
|
|
53
67
|
npx skill-flow --help
|
|
54
68
|
```
|
|
55
69
|
|
|
56
|
-
|
|
70
|
+
### Desktop prerequisites
|
|
57
71
|
|
|
58
|
-
|
|
59
|
-
git clone https://github.com/VintLin/skill-flow.git
|
|
60
|
-
cd skill-flow
|
|
61
|
-
npm install
|
|
62
|
-
npm run build
|
|
63
|
-
npm link
|
|
64
|
-
```
|
|
72
|
+
Skill Flow Desktop currently relies on a few external command-line tools on the target Mac:
|
|
65
73
|
|
|
66
|
-
|
|
74
|
+
- `node` 20 or newer is required to launch the bundled desktop helper
|
|
75
|
+
- `git` is required for non-GitHub Git sources
|
|
76
|
+
- `npx` is required for skills.sh imports
|
|
77
|
+
|
|
78
|
+
If the desktop app detects a missing dependency, it will surface an actionable error and point back to this section.
|
|
79
|
+
|
|
80
|
+
### Typical flow
|
|
67
81
|
|
|
68
82
|
```bash
|
|
69
|
-
# Add a
|
|
70
|
-
skill-flow add /
|
|
83
|
+
# Add a source
|
|
84
|
+
skill-flow add garrytan/gstack
|
|
71
85
|
|
|
72
|
-
#
|
|
86
|
+
# Review installed workflow groups
|
|
73
87
|
skill-flow list
|
|
74
88
|
|
|
75
|
-
#
|
|
89
|
+
# Open the interactive config UI
|
|
76
90
|
skill-flow config
|
|
77
91
|
|
|
78
|
-
#
|
|
92
|
+
# Search installed skills, built-in catalogs, and skills.sh
|
|
93
|
+
skill-flow find browser
|
|
94
|
+
|
|
95
|
+
# Update one source or all sources
|
|
96
|
+
skill-flow update garrytan-gstack
|
|
79
97
|
skill-flow update --all
|
|
80
98
|
|
|
81
|
-
#
|
|
99
|
+
# Diagnose drift or broken projections
|
|
82
100
|
skill-flow doctor
|
|
101
|
+
```
|
|
102
|
+
|
|
103
|
+
### Machine bridge
|
|
83
104
|
|
|
84
|
-
|
|
85
|
-
|
|
105
|
+
The desktop app and helper tooling talk to the CLI through a versioned JSON protocol:
|
|
106
|
+
|
|
107
|
+
```bash
|
|
108
|
+
printf '%s' '{"protocolVersion":"1.0","command":"list"}' | skill-flow bridge --json
|
|
86
109
|
```
|
|
87
110
|
|
|
88
|
-
|
|
111
|
+
## Supported Sources
|
|
89
112
|
|
|
90
|
-
|
|
113
|
+
`skill-flow add <source>` supports:
|
|
114
|
+
|
|
115
|
+
- local folders
|
|
116
|
+
- `owner/repo` GitHub shorthand
|
|
117
|
+
- full HTTPS Git URLs
|
|
118
|
+
- SSH Git URLs
|
|
119
|
+
- GitHub tree URLs
|
|
120
|
+
- `clawhub:<slug>[@version]`
|
|
91
121
|
|
|
92
122
|
Examples:
|
|
93
123
|
|
|
94
124
|
```bash
|
|
95
|
-
# Local repo
|
|
96
125
|
skill-flow add ~/code/my-skills
|
|
97
|
-
|
|
98
|
-
# GitHub shorthand
|
|
99
126
|
skill-flow add garrytan/gstack
|
|
100
|
-
|
|
101
|
-
# Full Git URL
|
|
102
127
|
skill-flow add https://github.com/garrytan/gstack.git
|
|
103
128
|
skill-flow add git@github.com:garrytan/gstack.git
|
|
104
|
-
|
|
105
|
-
# GitHub tree URL
|
|
106
129
|
skill-flow add https://github.com/garrytan/gstack/tree/main/skills
|
|
107
|
-
|
|
108
|
-
# Import the repo, but only preselect skills under a subpath
|
|
109
|
-
skill-flow add garrytan/gstack --path skills
|
|
110
|
-
|
|
111
|
-
# ClawHub package
|
|
112
130
|
skill-flow add clawhub:example/skill-pack
|
|
113
131
|
skill-flow add clawhub:example/skill-pack@1.2.3
|
|
114
132
|
```
|
|
115
133
|
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
|
|
120
|
-
|
|
121
|
-
|
|
122
|
-
|
|
123
|
-
|
|
124
|
-
|
|
125
|
-
|
|
126
|
-
|
|
127
|
-
|
|
128
|
-
|
|
129
|
-
|
|
130
|
-
|
|
131
|
-
|
|
132
|
-
|
|
133
|
-
|
|
134
|
-
-
|
|
135
|
-
-
|
|
136
|
-
|
|
137
|
-
|
|
138
|
-
|
|
139
|
-
|
|
140
|
-
|
|
141
|
-
|
|
142
|
-
|
|
143
|
-
|
|
144
|
-
|
|
145
|
-
-
|
|
146
|
-
|
|
147
|
-
|
|
148
|
-
|
|
149
|
-
-
|
|
150
|
-
|
|
151
|
-
|
|
152
|
-
|
|
153
|
-
|
|
154
|
-
|
|
155
|
-
|
|
156
|
-
|
|
157
|
-
|
|
158
|
-
|
|
159
|
-
|
|
160
|
-
|
|
161
|
-
|
|
162
|
-
|
|
163
|
-
`
|
|
164
|
-
|
|
165
|
-
|
|
166
|
-
|
|
167
|
-
|
|
168
|
-
|
|
169
|
-
|
|
170
|
-
|
|
171
|
-
|
|
172
|
-
|
|
173
|
-
|
|
174
|
-
|
|
175
|
-
|
|
176
|
-
|
|
177
|
-
|
|
178
|
-
|
|
179
|
-
|
|
180
|
-
|
|
181
|
-
|
|
182
|
-
|
|
183
|
-
|
|
184
|
-
|
|
185
|
-
|
|
186
|
-
|
|
134
|
+
Use `--path <repoSubpath>` when the repo is large but your default selection should start from one subtree.
|
|
135
|
+
|
|
136
|
+
## Supported Targets
|
|
137
|
+
|
|
138
|
+
Current built-in targets:
|
|
139
|
+
|
|
140
|
+
- Claude Code
|
|
141
|
+
- Codex
|
|
142
|
+
- Cursor
|
|
143
|
+
- GitHub Copilot
|
|
144
|
+
- Gemini CLI
|
|
145
|
+
- OpenCode
|
|
146
|
+
- OpenClaw
|
|
147
|
+
- Pi
|
|
148
|
+
- Trae
|
|
149
|
+
- Windsurf
|
|
150
|
+
- Roo Code
|
|
151
|
+
- Cline
|
|
152
|
+
- Amp
|
|
153
|
+
- Kiro
|
|
154
|
+
|
|
155
|
+
Target paths can be overridden with `SKILL_FLOW_TARGET_*` environment variables.
|
|
156
|
+
|
|
157
|
+
## Command Map
|
|
158
|
+
|
|
159
|
+
| Command | What it does |
|
|
160
|
+
| --- | --- |
|
|
161
|
+
| `add <source>` | Import a source and choose skills/targets |
|
|
162
|
+
| `list` | Show workflow groups and current health |
|
|
163
|
+
| `find <query>` / `search <query>` | Search installed skills, built-in Git catalogs, and skills.sh |
|
|
164
|
+
| `config` | Open the interactive configuration UI |
|
|
165
|
+
| `update [sourceId] --all` | Refresh one source or all registered sources |
|
|
166
|
+
| `doctor` | Diagnose drift, missing paths, and projection problems |
|
|
167
|
+
| `repair-source [sourceId] --all` | Rebuild source checkout metadata |
|
|
168
|
+
| `repair-state [sourceId] --all` | Rebuild source-side state |
|
|
169
|
+
| `repair-targets [sourceId] --all` | Repair projected target contents |
|
|
170
|
+
| `uninstall <sourceIds...>` | Remove groups and their deployments |
|
|
171
|
+
| `bridge --json` | Execute machine protocol requests |
|
|
172
|
+
|
|
173
|
+
## How State Works
|
|
174
|
+
|
|
175
|
+
`skill-flow` keeps one state root, defaulting to `~/.skillflow/`.
|
|
176
|
+
|
|
177
|
+
- `manifest.json`: what you want
|
|
178
|
+
- `lock.json`: what is actually installed
|
|
179
|
+
- `source/local/*`: imported local or adopted unmanaged sources
|
|
180
|
+
- `source/git/*`: Git source cache
|
|
181
|
+
- `source/clawhub/*`: skills.sh source cache
|
|
182
|
+
- `catalog/git/*`: built-in Git catalog cache
|
|
183
|
+
|
|
184
|
+
Target directories are deployment outputs, not the source of truth.
|
|
185
|
+
|
|
186
|
+
## FAQ
|
|
187
|
+
|
|
188
|
+
### Where does `skill-flow` store data?
|
|
189
|
+
|
|
190
|
+
By default, state lives under `~/.skillflow/`. `manifest.json` records the workflow you want, `lock.json` records the resolved inventory and deployments, and the `source/*` directories cache imported sources.
|
|
191
|
+
|
|
192
|
+
### Does deployment overwrite files in target agent folders?
|
|
193
|
+
|
|
194
|
+
`skill-flow` treats target directories as deployment outputs. The selected skills for a workflow group are projected there from state, so you should treat those files as generated results rather than edit them as the source of truth.
|
|
195
|
+
|
|
196
|
+
### When should I use `doctor` vs `repair-*`?
|
|
197
|
+
|
|
198
|
+
Start with `skill-flow doctor` when something looks wrong and you want a diagnosis first. Use `repair-source` when source checkout metadata is broken, `repair-state` when source-side state needs rebuilding, and `repair-targets` when deployed target contents have drifted from the current state.
|
|
199
|
+
|
|
200
|
+
## Monorepo Layout
|
|
201
|
+
|
|
202
|
+
```text
|
|
203
|
+
.
|
|
204
|
+
├── apps
|
|
205
|
+
│ ├── cli/ # published npm package and CLI entrypoint
|
|
206
|
+
│ └── desktop-mac/ # SwiftUI desktop app for macOS 15+
|
|
207
|
+
├── packages
|
|
208
|
+
│ ├── core-engine/ # inventory, deployment, doctor, bootstrap services
|
|
209
|
+
│ ├── domain/ # domain models and core types
|
|
210
|
+
│ ├── integration/ # Git, GitHub, skills.sh, path, naming integrations
|
|
211
|
+
│ ├── query/ # shared runtime and bridge-facing orchestration
|
|
212
|
+
│ ├── shared-types/ # bridge protocol types
|
|
213
|
+
│ ├── storage/ # manifest, lock, preferences, cache persistence
|
|
214
|
+
│ └── tui/ # Ink add/find/config UI
|
|
215
|
+
├── docs/ # architecture, contributor docs, references, plans
|
|
216
|
+
└── releases/ # release notes
|
|
217
|
+
```
|
|
187
218
|
|
|
188
219
|
## Development
|
|
189
220
|
|
|
190
221
|
```bash
|
|
191
222
|
npm install
|
|
192
|
-
npm run
|
|
193
|
-
npm
|
|
194
|
-
|
|
223
|
+
npm run build
|
|
224
|
+
npm test
|
|
225
|
+
```
|
|
226
|
+
|
|
227
|
+
CLI dev loop:
|
|
228
|
+
|
|
229
|
+
```bash
|
|
230
|
+
npm run -w skill-flow dev -- --help
|
|
231
|
+
```
|
|
232
|
+
|
|
233
|
+
Desktop dev loop:
|
|
234
|
+
|
|
235
|
+
```bash
|
|
236
|
+
npm run build
|
|
237
|
+
cd apps/desktop-mac
|
|
238
|
+
swift build
|
|
239
|
+
swift test
|
|
240
|
+
```
|
|
241
|
+
|
|
242
|
+
Debugging the desktop shell against a local CLI build:
|
|
243
|
+
|
|
244
|
+
```bash
|
|
245
|
+
export SKILL_FLOW_DESKTOP_HELPER_OVERRIDE=/absolute/path/to/apps/cli/dist/cli.js
|
|
246
|
+
```
|
|
247
|
+
|
|
248
|
+
Unsigned desktop packaging:
|
|
249
|
+
|
|
250
|
+
```bash
|
|
251
|
+
scripts/release/package-desktop-mac.sh --arch arm64
|
|
252
|
+
scripts/release/package-desktop-mac.sh --arch x86_64
|
|
253
|
+
scripts/release/package-desktop-mac.sh --arch universal
|
|
254
|
+
```
|
|
255
|
+
|
|
256
|
+
Open-source macOS release flow:
|
|
257
|
+
|
|
258
|
+
```bash
|
|
259
|
+
scripts/release/release-github.sh all
|
|
195
260
|
```
|
|
196
261
|
|
|
197
|
-
|
|
262
|
+
Unsigned macOS install notes:
|
|
263
|
+
|
|
264
|
+
- Apple Silicon Macs can use `Skill-Flow-arm64.dmg` or `Skill-Flow-universal.dmg`.
|
|
265
|
+
- Intel Macs can use `Skill-Flow-x86_64.dmg` or `Skill-Flow-universal.dmg`.
|
|
266
|
+
- Copy `Skill Flow.app` to `Applications`, then open it once with Finder's `Open` action if Gatekeeper blocks it.
|
|
267
|
+
- If macOS still marks the app as quarantined, run:
|
|
268
|
+
|
|
269
|
+
```bash
|
|
270
|
+
xattr -dr com.apple.quarantine "/Applications/Skill Flow.app"
|
|
271
|
+
```
|
|
272
|
+
|
|
273
|
+
## Star History
|
|
274
|
+
|
|
275
|
+
[](https://www.star-history.com/#VintLin/skill-flow&Date)
|
|
198
276
|
|
|
199
277
|
## License
|
|
200
278
|
|