
Cabinet Ai Knowledge Base
Self-host Cabinet as a markdown-first startup OS with AI agents, memory, scheduled jobs, and embedded apps for solo operator workflows.
Overview
Cabinet AI Knowledge Base is a journey-wide agent skill that teaches self-hosted markdown knowledge-base and AI-team setup—usable whenever a solo builder needs a durable workspace before committing to scattered docs and
Install
npx skills add https://github.com/aradotso/trending-skills --skill cabinet-ai-knowledge-baseWhat is this skill?
- File-based markdown knowledge base with no database vendor lock-in
- Onboarding wizard builds your AI team in five questions
- AI agents with memory plus scheduled jobs and embedded HTML apps
- Git-backed history and full web terminal in one local stack
- Quick start via npx create-cabinet@latest and npm run dev:all on port 3000
- Onboarding wizard builds your AI team in 5 questions
- Prerequisites: Node.js 20+
Adoption & trust: 511 installs on skills.sh; 31 GitHub stars; 1/3 security scanners passed (skills.sh audits).
What problem does it solve?
Your specs, agent prompts, and ops notes are split across SaaS tools with no git history and no unified AI operators on your own machine.
Who is it for?
Indie founders who want a self-hosted startup OS, Claude Code on macOS/Linux, and markdown-native agent memory without a proprietary database.
Skip if: Builders who only need a single RSS or deploy skill, cannot run Node 20+ and Claude Code CLI, or want a fully managed cloud KB with zero self-host maintenance.
When should I use this skill?
Set up Cabinet knowledge base, create workspace, add AI agents, configure scheduled jobs, or build an AI team with Cabinet.
What do I get? / Deliverables
You run Cabinet locally with configured env, an onboarded AI team, and file-based KB ready for agents, jobs, and embedded apps across later build and operate phases.
- Running Cabinet instance on localhost:3000
- Configured .env.local
- Onboarded AI team and markdown KB tree
Recommended Skills
Journey fit
Useful at every journey phase - explore requirements and options before committing to a direction.
Where it fits
Create a cabinet workspace to store competitor notes and agent templates in markdown before you validate.
Centralize PRD and pricing drafts in Cabinet files while scoping MVP boundaries.
Run the five-question onboarding and attach agent templates with scheduled jobs to your repo workflow.
Keep launch checklists and release comms in git-backed markdown alongside your agents.
Use scheduled jobs and the web terminal to iterate runbooks without migrating off disk storage.
How it compares
Use instead of ad-hoc folders plus separate agent chats when you want one git-backed cabinet workspace with scheduled agent jobs.
Common Questions / FAQ
Who is cabinet-ai-knowledge-base for?
Solo builders and small teams adopting Cabinet as a self-hosted AI knowledge base and startup OS with agents, jobs, and markdown on disk.
When should I use cabinet-ai-knowledge-base?
Use during Validate scope to centralize specs; during Build agent-tooling to add agents and jobs; during Operate iterate to maintain runbooks; and during Idea research when you want one file-based OS for discovery notes and AI templates.
Is cabinet-ai-knowledge-base safe to install?
Cabinet is self-hosted with optional KB_PASSWORD; review the Security Audits panel on this page, harden DOMAIN and auth for production, and treat agent shell access as high trust.
SKILL.md
READMESKILL.md - Cabinet Ai Knowledge Base
# Cabinet AI Knowledge Base > Skill by [ara.so](https://ara.so) — Daily 2026 Skills collection. Cabinet is an AI-first startup OS and knowledge base where everything lives as markdown files on disk. No database, no vendor lock-in — self-hosted with AI agents that have memory, scheduled jobs, embedded HTML apps, git-backed history, and a full web terminal. --- ## Installation ### Quick Start (recommended) ```bash npx create-cabinet@latest cd cabinet npm run dev:all ``` Open [http://localhost:3000](http://localhost:3000) — the onboarding wizard builds your AI team in 5 questions. ### Manual Clone ```bash git clone https://github.com/hilash/cabinet.git cd cabinet npm install cp .env.example .env.local npm run dev:all ``` ### Prerequisites - Node.js 20+ - Claude Code CLI: `npm install -g @anthropic-ai/claude-code` - macOS or Linux (Windows via WSL) --- ## Environment Configuration ```bash # .env.local KB_PASSWORD=your_optional_password # Leave empty for no auth DOMAIN=localhost # Or your custom domain ``` --- ## Key Commands ```bash npm run dev # Next.js dev server on port 3000 npm run dev:daemon # WebSocket + job scheduler on port 3001 npm run dev:all # Both servers together (use this for development) npm run build # Production build npm run start # Production mode (both servers) ``` --- ## Architecture ``` cabinet/ src/ app/api/ → Next.js API routes components/ → React components (sidebar, editor, agents, jobs, terminal) stores/ → Zustand state management lib/ → Storage, markdown, git, agents, jobs server/ cabinet-daemon.ts → WebSocket + job scheduler + agent executor data/ .agents/.library/ → 20 pre-built agent templates getting-started/ → Default KB pages ``` **Tech stack:** Next.js 16, TypeScript, Tailwind CSS, shadcn/ui, Tiptap, Zustand, xterm.js, node-cron --- ## Project Structure (data directory) Cabinet stores everything as markdown files under `data/`: ``` data/ getting-started/ index.md my-project/ index.md research.md index.html ← Embedded HTML app (auto-rendered as iframe) .agents/ .library/ ceo.md product-manager.md researcher.md active/ my-ceo/ index.md ← Agent definition memory.md ← Agent memory (auto-updated) ``` --- ## Agent Definition Format Agents are defined as markdown files with YAML frontmatter: ```markdown --- name: Research Scout role: researcher schedule: "0 */6 * * *" # Cron: every 6 hours skills: - web-search - summarization - reddit-scout goals: - Monitor competitor activity - Surface trending topics in AI tooling - File weekly summary reports --- # Research Scout You are a research agent for [Company Name]. Your job is to... ## Memory <!-- Agent memory is auto-appended here by the daemon --> ``` --- ## Creating a Custom Agent ### Via the UI 1. Navigate to the Agents panel in the sidebar 2. Click "New Agent" and select a template or start blank 3. Fill in role, goals, and schedule 4. Cabinet creates `data/.agents/active/<agent-name>/index.md` ### Programmatically ```typescript // src/lib/agents.ts pattern — create an agent file directly import fs from 'fs/promises' import path from 'path' const agentDir = path.join(process.cwd(), 'data', '.agents', 'active', 'my-agent') await fs.mkdir(agentDir, { recursive: true }) await fs.writeFile( path.join(agentDir, 'index.md'), `--- name: My Custom Agent role: analyst schedule: "0