Skip to content

Commit 106cb18

Browse files
authored
Merge pull request #1 from clawdbot/nix-plugin-metadata
Add nix-clawdbot plugin pointers to skill metadata
2 parents f80fa90 + e29ec88 commit 106cb18

File tree

27 files changed

+1437
-333
lines changed

27 files changed

+1437
-333
lines changed

CHANGELOG.md

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -12,13 +12,15 @@
1212
- Web: stabilize skill OG image generation on server runtimes.
1313
- Web: prevent skill OG text overflow outside the card.
1414
- Registry: make SoulHub auto-seed idempotent and non-user-owned.
15+
- Registry: keep GitHub backup state + publish backups intact (thanks @joshp123, #1).
16+
- CLI/Registry: restore fork lineage on sync + clamp bulk list queries (thanks @joshp123, #1).
17+
18+
## 0.0.6 - 2026-01-07
1519

16-
## 0.1.0 - 2026-01-07
1720

1821
### Added
1922
- API: v1 public REST endpoints with rate limits, raw file fetch, and OpenAPI spec.
2023
- Docs: `docs/api.md` and `DEPRECATIONS.md` for the v1 cutover plan.
21-
- Registry: GitHub App backs up published skills to `clawdbot/skills` (thanks @thewilloftheshadow, #5).
2224

2325
### Changed
2426
- CLI: publish now uses single multipart `POST /api/v1/skills`.

README.md

Lines changed: 46 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -93,6 +93,52 @@ This writes `JWT_PRIVATE_KEY` + `JWKS` to the deployment and prints values for y
9393
- `JWT_PRIVATE_KEY` / `JWKS`: Convex Auth keys.
9494
- `OPENAI_API_KEY`: embeddings for search + indexing.
9595

96+
## Nix plugins (nixmode skills)
97+
98+
ClawdHub can store a nix-clawdbot plugin pointer in SKILL frontmatter so the registry knows which
99+
Nix package bundle to install. A nix plugin is different from a regular skill pack: it bundles the
100+
skill pack, the CLI binary, and its config flags/requirements together.
101+
102+
Add this to `SKILL.md`:
103+
104+
```yaml
105+
---
106+
name: peekaboo
107+
description: Capture and automate macOS UI with the Peekaboo CLI.
108+
metadata: {"clawdbot":{"nix":{"plugin":"github:clawdbot/nix-steipete-tools?dir=tools/peekaboo","systems":["aarch64-darwin"]}}}
109+
---
110+
```
111+
112+
Install via nix-clawdbot:
113+
114+
```nix
115+
programs.clawdbot.plugins = [
116+
{ source = "github:clawdbot/nix-steipete-tools?dir=tools/peekaboo"; }
117+
];
118+
```
119+
120+
You can also declare config requirements + an example snippet:
121+
122+
```yaml
123+
---
124+
name: padel
125+
description: Check padel court availability and manage bookings via Playtomic.
126+
metadata: {"clawdbot":{"config":{"requiredEnv":["PADEL_AUTH_FILE"],"stateDirs":[".config/padel"],"example":"config = { env = { PADEL_AUTH_FILE = \\\"/run/agenix/padel-auth\\\"; }; };"}}}
127+
---
128+
```
129+
130+
To show CLI help (recommended for nix plugins), include the `cli --help` output:
131+
132+
```yaml
133+
---
134+
name: padel
135+
description: Check padel court availability and manage bookings via Playtomic.
136+
metadata: {"clawdbot":{"cliHelp":"padel --help\\nUsage: padel [command]\\n"}}
137+
---
138+
```
139+
140+
`metadata.clawdbot` is preferred, but `metadata.clawdis` is accepted as an alias for compatibility.
141+
96142
## Scripts
97143

98144
```bash

biome.json

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -12,7 +12,9 @@
1212
"!**/convex/_generated",
1313
"!**/src/routeTree.gen.ts",
1414
"!**/.tanstack",
15-
"!**/public"
15+
"!**/public",
16+
"!**/.devenv",
17+
"!**/.devenv"
1618
]
1719
},
1820
"assist": { "actions": { "source": { "organizeImports": "on" } } },

bun.lock

Lines changed: 0 additions & 1 deletion
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

convex/_generated/api.d.ts

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -11,6 +11,7 @@
1111
import type * as auth from "../auth.js";
1212
import type * as comments from "../comments.js";
1313
import type * as crons from "../crons.js";
14+
import type * as devSeed from "../devSeed.js";
1415
import type * as downloads from "../downloads.js";
1516
import type * as githubBackups from "../githubBackups.js";
1617
import type * as githubBackupsNode from "../githubBackupsNode.js";
@@ -60,6 +61,7 @@ declare const fullApi: ApiFromModules<{
6061
auth: typeof auth;
6162
comments: typeof comments;
6263
crons: typeof crons;
64+
devSeed: typeof devSeed;
6365
downloads: typeof downloads;
6466
githubBackups: typeof githubBackups;
6567
githubBackupsNode: typeof githubBackupsNode;

0 commit comments

Comments
 (0)