You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Copy file name to clipboardExpand all lines: CLAUDE.md
+31-23Lines changed: 31 additions & 23 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -1,28 +1,31 @@
1
1
# Skiller — agent guidance
2
2
3
-
Skiller is a **cross-platform desktop app** (Electrobun) for installing, syncing, and editing **AI agent skills** across many agents (Claude Code, Cursor, Copilot CLI, etc.). Bundle ID: `com.beautyfree.skiller`.
3
+
Skiller is a **cross-platform desktop app** (Electron) for installing, syncing, and editing **AI agent skills** across many agents (Claude Code, Cursor, Copilot CLI, etc.). Bundle ID: `com.beautyfree.skiller`.
4
4
5
5
## Stack
6
6
7
7
| Layer | Tech |
8
8
| --- | --- |
9
-
| Main / native |**Bun**+ **Electrobun**(`src/bun/index.ts`) |
9
+
| Main / native |**Electron** (`src/electron-main/index.ts`), Node 20|
|`DESIGN.md`| UI tokens and product design notes |
28
31
@@ -36,21 +39,24 @@ bun install
36
39
37
40
**Development**
38
41
39
-
-`bun run dev` — Electrobun dev + watch (runs `build:native-effects` first on macOS).
40
-
-`bun run dev:hmr` — Concurrent Vite (port **5180**) + `electrobun dev` for UI hot reload.
41
-
-`bun run dev:debug` — Same as HMR path with webview DevTools (`AGENTSKILLS_DEVTOOLS=1`).
42
+
-`bun run dev` — electron-vite dev: watches main + preload, spawns Vite on port **5180** for the renderer with HMR. Opens an Electron window loading the Vite URL.
43
+
-`bun run dev:debug` — Same as `dev` with `AGENTSKILLS_DEVTOOLS=1` (renderer DevTools on-open).
42
44
43
45
**Checks**
44
46
45
-
-`bunx tsc --noEmit`— typecheck (also part of `bun run build`).
47
+
-`bun run typecheck` — `tsc --noEmit`for renderer + `tsc -p tsconfig.node.json --noEmit` for main/preload.
46
48
47
-
**Production web bundle**
49
+
**Production bundle (web + main + preload)**
48
50
49
-
-`bun run build` — `build:native-effects` + `tsc` + `vite build` → `dist/` (then copied into the app bundle per `electrobun.config.ts`).
51
+
-`bun run build` — `electron-vite build` → `out/{main,preload,renderer}/`. Consumed by `electron-builder`.
50
52
51
-
**Platform installers** (run **on the target OS**; Electrobun does not cross-compile)
-`bun run dist:win` — `electron-vite build && electron-builder --win`
57
+
-`bun run dist:linux` — `electron-vite build && electron-builder --linux`
58
+
59
+
See `docs/DEVELOPMENT.md` for signing env vars and artifact locations.
54
60
55
61
## Icons
56
62
@@ -61,19 +67,21 @@ bun install
61
67
62
68
## Conventions for agents
63
69
64
-
- Prefer **Bun** for scripts and local runs (`bun`, `bunx`).
70
+
- Prefer **Bun** for scripts and local runs (`bun`, `bunx`). Electron main itself runs on Node (Electron's bundled Node 20) — use Node-compatible APIs only.
65
71
-**UI strings** for user-facing copy: add keys under `src/mainview/i18n/` (English in `en.ts`); keep code comments in **English**.
66
-
- Match existing patterns: `@/` imports from `src/mainview` (see `vite.config.ts` / `tsconfig.json`).
72
+
- Match existing patterns: `@/` imports from `src/mainview` (see `electron.vite.config.ts` / `tsconfig.json`).
67
73
- Avoid scope creep: do not change `node_modules/` or unrelated marketing-only paths unless the task requires it.
68
-
- After RPC or shared-type changes, ensure **both** Bun handlers and webview callers stay aligned (`src/shared/` or local schema modules).
74
+
- After RPC or shared-type changes, ensure **both** main handlers (`src/main/rpc-handlers.ts`) and renderer callers stay aligned (`src/shared/` or local schema modules).
75
+
- Native Node modules (`better-sqlite3`) need `electron-builder install-app-deps` to rebuild against Electron's ABI. `bun install` on its own won't do it.
69
76
70
77
## Environment variables (non-exhaustive)
71
78
72
79
| Variable | Purpose |
73
80
| --- | --- |
74
-
|`AGENTSKILLS_TRPC_PORT`| tRPC HTTP port (default `17888`) |
75
-
|`AGENTSKILLS_DEVTOOLS` / `ELECTROBUN_OPEN_DEVTOOLS`| Open webview DevTools |
76
-
|`ELECTROBUN_*`| Signing, notarization, update base URL — see `docs/DEVELOPMENT.md` and `electrobun.config.ts`|
81
+
|`AGENTSKILLS_TRPC_PORT`| tRPC HTTP port (default `17888`; falls through to +48 on conflict) |
82
+
|`AGENTSKILLS_DEVTOOLS`| Auto-open renderer DevTools on launch (dev only) |
83
+
|`AGENTSKILLS_DISABLE_WINDOW_BLUR`|`1` → force vibrancy off on macOS even if settings say on |
Copy file name to clipboardExpand all lines: README.md
+8-6Lines changed: 8 additions & 6 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -79,21 +79,23 @@ Grab the installer for your OS from the [**latest release**](https://github.com/
79
79
80
80
| OS | File | Notes |
81
81
| --- | --- | --- |
82
-
| macOS (Apple Silicon) |`stable-macos-arm64-Skiller.dmg`| Signed + notarized — opens with no Gatekeeper warnings. Open the DMG and drag Skiller to Applications. |
83
-
| Windows (x64) |`stable-win-x64-Skiller-Setup.zip`|Extract and run `Skiller.exe`. SmartScreen may show a one-time warning — click "More info" → "Run anyway". |
84
-
| Linux (x64) |`stable-linux-x64-Skiller-Setup.tar.gz`|Extract and run `bin/launcher` from the resulting folder. |
82
+
| macOS (Apple Silicon) |`Skiller-<version>-macos-arm64.dmg`| Signed + notarized. Open the DMG and drag Skiller to Applications. |
83
+
| Windows (x64) |`Skiller-<version>-win-x64.exe`|NSIS installer. SmartScreen may show a one-time warning — click "More info" → "Run anyway". |
84
+
| Linux (x64) |`Skiller-<version>-linux-x86_64.AppImage` or `.deb`|AppImage is self-contained (`chmod +x`, run). Deb for Ubuntu/Debian package managers. |
85
85
86
86
Every release is built and published by the CI matrix in `.github/workflows/release.yml` — tagging `vX.Y.Z` produces all three platforms automatically.
87
87
88
+
> **If you had an older `stable-*-Skiller.*` build:** those were produced by a previous Electrobun-based packaging pipeline and can't auto-update to the current Electron-based builds. Grab the new installer above; your local data in `~/Library/Application Support/com.beautyfree.skiller/` (or the Windows/Linux equivalent) stays intact.
89
+
88
90
## Auto-updates
89
91
90
92
Once installed, Skiller keeps itself current:
91
93
92
94
- Checks for new versions on launch, then every 6 hours in the background.
93
-
- Downloads delta patches (~14 KB typical) when available; falls back to the full bundle if the patch chain breaks.
94
-
- Shows status and a one-click **Restart & install** button in **Settings → App Updates**.
95
+
- Downloads the full updated bundle on demand (click **Download update** in Settings → App Updates).
96
+
- Shows status and a one-click **Restart & install** button once ready.
95
97
96
-
The updater points at `github.com/.../releases/latest/download`, so every tagged release on GitHub automatically becomes the next update for existing installs.
98
+
Powered by [`electron-updater`](https://www.electron.build/auto-update) reading from this repo's GitHub Releases.
0 commit comments