kitze/skillbox

★ 207⑂ 16

Self-hosted, versioned skills library for AI agents. MCP, scoped clients, and optional Jev recommendations.

About kitze/skillbox

kitze/skillbox is an open-source project on GitHub, mainly written in TypeScript. Self-hosted, versioned skills library for AI agents. MCP, scoped clients, and optional Jev recommendations. It currently holds 207 stars and 16 forks with 0 open issues, and was last pushed on an unknown date (repository created unknown).

Project Overview

AI Homed tracks it on the Today's Trending board, currently at rank #79 with 0 new stars today.

GitHub Repository Details

Repository kitze/skillbox · default branch - · size 0 KB · watchers 0 · source: GitHub REST API and repository README

README

skillbox

Self\-hosted, versioned skills library for AI agents\. MCP, scoped clients, and optional Jev recommendations\.

https://github.com/kitze/skillbox/blob/HEAD/Kitze Made by Kitze
kitze.io · X · YouTube


More projects by Kitze

https://github.com/kitze/skillbox/blob/HEAD/Zero To Shipped logo
Zero To Shipped
A full-stack starter kit for web and mobile apps.
https://github.com/kitze/skillbox/blob/HEAD/Sotto logo
Sotto
Voice-to-text for macOS. Local AI, one-time purchase.
https://github.com/kitze/skillbox/blob/HEAD/Tinkerer Club logo
Tinkerer Club
A private community for builders, self-hosters, and AI tinkerers.
https://github.com/kitze/skillbox/blob/HEAD/Sizzy logo
Sizzy
The browser for web developers.
https://github.com/kitze/skillbox/blob/HEAD/Supermac logo
Supermac
A macOS command center for everyday workflows.
https://github.com/kitze/skillbox/blob/HEAD/DMX logo
DMX
A focused desktop client for X.

Support this project

https://github.com/kitze/skillbox/blob/HEAD/Buy me a coffee   https://github.com/kitze/skillbox/blob/HEAD/Sponsor on GitHub

Sponsors

https://github.com/kitze/skillbox/blob/HEAD/Postiz logo
Postiz
Schedule social posts with AI agents.
https://github.com/kitze/skillbox/blob/HEAD/FounderStack logo
FounderStack
A SaaS stack for your business, without subscriptions.
https://github.com/kitze/skillbox/blob/HEAD/Matte logo
Matte
3D mockups, screen recordings, and video editing.
https://github.com/kitze/skillbox/blob/HEAD/HTML/CSS to Image logo
HTML/CSS to Image
Turn HTML/CSS into images, PDFs, and screenshots.
https://github.com/kitze/skillbox/blob/HEAD/NameMyVenti logo
NameMyVenti
Get your brand shouted out at Starbucks.




Skillbox

A self-hosted, versioned skills library for AI agents. React, Bun, Hono and PostgreSQL. MIT licensed.

Features

A new instance starts empty. No personal skills, accounts, client keys, service endpoints or paid-provider credentials are seeded. Skillbox never executes uploaded skill code.

Quick start

Requires Docker Engine/Desktop with Compose v2 and Bash (Linux, macOS or WSL). No host Bun/Node installation needed.

git clone https://github.com/kitze/skillbox.git
cd skillbox
bash scripts/skillbox.sh setup

Creates .env with unique random credentials, mode 0600; refuses to overwrite.

bash scripts/skillbox.sh start

Already have Bun? bun scripts/setup-env.ts remains available. See self-hosting for LAN ports, optional automatic HTTPS, prebuilt images, mounted secrets, backup/restore and upgrades. Umbrel packaging supports official submissions and community stores; public images and real Umbrel lifecycle verification are release gates, not implied by having package files.

Open http://127.0.0.1:4791. Sign in with SKILLBOX_ADMIN_TOKEN from your local .env. The key is not printed by the setup script. Keep .env private. For a remote installation, set SKILLBOX_ORIGIN to your own HTTPS origin and configure a TLS reverse proxy; see deployment.

Create or import skills, create a profile with the required grants, then create a client connection. Client keys are shown once; only their hashes are stored. Use separate client keys rather than distributing the owner key.

For local development with your own PostgreSQL 16+ database:

bun install --frozen-lockfile

Set DATABASE_URL, SKILLBOX_ADMIN_TOKEN (at least 32 random characters),

and SKILLBOX_ORIGIN=http://127.0.0.1:4791 in your protected environment.

bun run build bun run start

Jev setup

Open Settings → Jev recommendations, select Vercel AI Gateway (default), TypeSafe AI, or OpenRouter, and save that provider's API key. Keys are stored separately: switching providers never sends another provider's key, and switching back retains its saved key. Removing the selected provider's key disables its model calls. Skillbox does not auto-import environment keys, fetch credentials from a skill library, or ship an application-wide provider account.

The key is encrypted server-side in PostgreSQL using AES-256-GCM with key material derived from your SKILLBOX_ADMIN_TOKEN. It is never returned by the settings API or included in browser bundles. Protect the owner token and database backups. Changing that token makes stored integration credentials unreadable. Follow the rotation guidance before changing it.

Saving a key does not validate provider access or buy credits. Jev sends task text and authorized active skill descriptions to the selected provider; its charges and data handling apply to your account. Without that provider's saved key, or on failure, recommendations return deterministic search with an explicit fallback reason and attempted provider.

TypeSafe uses POST https://api.typesafe.ai/v1/systemone, Bearer authentication and model: "jev-latest", without Gateway protocol headers. Gateway keeps its evaluation-model endpoint and existing headers. OpenRouter uses POST https://openrouter.ai/api/alpha/decisions with model: "typesafe/jev-1.13", not the chat-completions endpoint. All three use the same bounded catalog and score rubric. OpenRouter evaluates the complete catalog in batches of at most 32 skills / 24,000 request bytes, with two concurrent batches under the existing eight-second deadline. Any failed batch falls back for the whole request; no partial ranking is returned. Snake-case usage fields are normalized, and OpenRouter's reported usage.cost is aggregated across successful batches. Provider/key changes invalidate cached and in-flight results. The direct contract follows the TypeSafe OpenAPI schema.

Agents and CLI

Install bootstrap/SKILL.md as the agent's skills-library bootstrap. Configure your own instance's /mcp endpoint with Authorization: Bearer . For clients needing stdio:

{
  "mcpServers": {
    "skillbox": {
      "command": "node",
      "args": ["/absolute/path/to/skillbox/cli/skillbox.mjs", "mcp"],
      "env": {
        "SKILLBOX_URL": "https://skills.example.com",
        "SKILLBOX_CONFIG": "/absolute/path/to/protected-client-config.json"
      }
    }
  }
}

Client config: { "url": "https://skills.example.com", "token": "YOUR_CLIENT_KEY" }, mode 0600. Default location: ~/.config/skillbox/config.json. SKILLBOX_URL / SKILLBOX_TOKEN override config. Without a URL, the CLI targets localhost, never another person's service. Keep cli/skillbox.mjs and cli/package.mjs together.

node cli/skillbox.mjs list
node cli/skillbox.mjs search "database migration"
node cli/skillbox.mjs recommend "Fix choppy scrolling in an Expo app"
node cli/skillbox.mjs load my-skill
node cli/skillbox.mjs manifest my-skill
node cli/skillbox.mjs audit # Owner-only; exits 1 for incompatible packages
node cli/skillbox.mjs fetch my-skill@REVISION
node cli/skillbox.mjs publish ./my-skill my-skill EXPECTED_REVISION

Base MCP tools: search_skills, recommend_skills, load_skill, read_skill_file, report_skill_use. Write/proposal tools appear according to permissions. Recommendations are additive: unqueried search_skills remains the mandatory task-start inventory step. Load selected skills with returned revisions before applying them.

Fetching validates every path, file hash, size, executable flag and package checksum, then writes atomically. It never runs code or installs dependencies. Revoking a key blocks future access but cannot retract already downloaded files. Bundles expand grants into deduplicated current leaf skills; references never grant access by themselves.

scripts/install-client.py optionally configures Codex, Claude or Cursor from explicit per-client credentials on stdin, preserving existing settings and making local backups. Review any installer before running it.

Native MCP Skills

Skillbox serves io.modelcontextprotocol/skills on MCP 2026-07-28 using the stable SDK v2: server/discover, skills/list, skills/get, and verified resources/read, including binary files. Catalogs contain complete manifests for authorized, active, compatible skills; cache hints remain private.

Existing 2025 clients, tools and CLI workflows keep working. The owner-only compatibility audit identifies legacy packages without rewriting them. Reading a resource never activates or executes a skill; native hosts own verification and approval. Optional directory reads are not advertised.

Manually integrates Matt Van Horn's PR #2 with the existing manifest, authorization and validation safeguards. See Skills over MCP for protocol details and verification scope. The hosted roadmap remains future work; this release is single-owner and self-hosted.

Recommendation contract

MCP: recommend_skills({task, limit?, offset?}). HTTP: POST /api/skill-recommendations with the same JSON and authentication.

For an optional billable developer benchmark, use bun scripts/benchmark-recommendations.ts --live --provider vercel with your own AI_GATEWAY_API_KEY, --provider typesafe with TYPESAFE_API_KEY / JEV_KEY, or --provider openrouter with OPENROUTER_API_KEY. This separate script does not configure the app or save credentials. Missing provider-reported cost is shown as unknown, not zero. Its small synthetic sample is not a production latency SLA or probability calibration.

Import from GitHub

Owners can choose Import from GitHub in the library and paste a public repository, /tree//, or /blob//…/SKILL.md URL. Collections prompt for a skill directory. Branches containing slashes resolve longest matching ref first; use a full commit SHA to remove ambiguity.

Preview downloads and validates the package without publishing. Review SKILL.md, files, excluded artifacts and the pinned commit, then explicitly import. Existing skill IDs require an overwrite checkbox and Publish new revision; stale revisions return a conflict rather than overwrite newer edits. Existing bundles, disabled and archived entries cannot be replaced through import.

Publication downloads the previewed commit again, validates Git blob hashes, and records repository, full commit SHA and directory on the immutable revision. Package bytes and executable flags are preserved; no scripts run. Owner-only endpoints: POST /api/imports/github/preview (url, optional repository-relative path) and POST /api/imports/github/publish (url from the preview, id, expectedRevision).

Public repositories only: no GitHub token, private repositories, redirects, symlinks, submodules or Git LFS. Limits: 400 files, 2 MB per file, 8 MB per package, 30-second deadline, two active imports and 12 attempts/minute per instance. Truncated or oversized repository trees fail closed. Runtime artifacts and .env* files are excluded; recognizable embedded secrets block import. Secret detection is heuristic, not a guarantee that imported content is safe.

Data portability

bun scripts/import.ts /path/to/skills
SKILLBOX_EXPORT_DIR=/path/to/empty-export bun scripts/export.ts
bash scripts/backup.sh

The database is the source of truth; folder exports do not change it until republished. Imports preserve file bytes and unknown frontmatter, skip runtime artifacts/symlinks, and quarantine recognizable secret patterns. This is a heuristic, not a comprehensive secret audit. Do not put passwords or tokens in skill packages.

Exports contain your skill content and may be private. Keep exports and backups separate from public application source. An optional scripts/export-github.sh requires an explicit dedicated private export checkout; it is not enabled automatically.

Verification and security

bun run typecheck
bash scripts/test-isolated.sh

The isolated suite creates and removes its own Compose PostgreSQL instance without published ports. It covers authorization, revisions, API/MCP behavior, CLI, encrypted settings and recommendations; image creation also builds the frontend. Never run database tests against production.

See SECURITY.md, deployment notes, and release checklist. Skillbox is a single-owner, self-hosted application with scoped clients—not a public multi-tenant SaaS. No analytics, hosted account, preloaded catalog or automatic paid-provider connection is required.


More projects by Kitze

Apps & tools

gifs.so
Search, copy, and download reaction GIFs.
Glink
Feedback, roadmaps, changelogs, and discussions.
Benji
Tasks, habits, calendar, health, and routines in one place.
Perkz
Sell and manage access to private GitHub repositories.
JustWrite
Distraction-free writing sprints for macOS, with time or word-count goals.
Releaseflow
App updates and downloads.
Passlock
A macOS password manager with time locks and unlock challenges.

Open source

Skillbox
A self-hosted, versioned skills library for AI agents.
Unclutter
Remove page clutter with AI-powered, reusable browser rules.
PageGrade
Grade page clarity, writing, and on-page SEO.
Council
Let your coding agents deliberate together before making a plan.
CodexMaxx
Manage Codex accounts, usage, and active sessions on macOS.
React Hanger
A collection of useful React hooks.
React Genie
Animate React elements as they enter the viewport.
MobX Router
A simple router for MobX and React apps.

All projects · GitHub · Follow on X · YouTube

GitHub Stars & Activity

207Stars
16Forks
0Open issues
TypeScriptLanguage

GitHub Popularity

GitHub stars207
Forks16
Open issues0
Primary languageTypeScript
License-
Stars gained today0
Created-
Last pushed-

Trending History

Daily boardrank #79 · ▲ 0 stars

Related AI Projects

1

anthropics / claude-code

TypeScript★ 146,908⑂ 23,988▲ 483 stars
2

supermemoryai / supermemory

TypeScript★ 30,666⑂ 2,675▲ 392 stars
3

vercel-labs / json-render

TypeScript★ 16,987⑂ 905▲ 585 stars
4

krillinai / OpenCreator

TypeScript★ 11,870⑂ 1,179▲ 317 stars
5

Tencent / BrowserSkill

TypeScript★ 5,916⑂ 417▲ 612 stars
6

KnockOutEZ / wigolo

TypeScript★ 5,341⑂ 432▲ 31 stars
7

BuilderIO / agent-native

TypeScript★ 4,978⑂ 468▲ 89 stars
8

cloudflare / mcp-server-cloudflare

TypeScript★ 4,253⑂ 523▲ 40 stars

More AI Rankings