[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"project-74908":3},{"id":4,"name":5,"fullName":6,"owner":7,"repo":5,"description":8,"homepage":9,"htmlUrl":9,"language":10,"languages":9,"totalLinesOfCode":9,"stars":11,"forks":12,"watchers":13,"openIssues":14,"contributorsCount":15,"subscribersCount":15,"size":15,"stars1d":14,"stars7d":16,"stars30d":17,"stars90d":15,"forks30d":15,"starsTrendScore":18,"compositeScore":19,"rankGlobal":9,"rankLanguage":9,"license":20,"archived":21,"fork":21,"defaultBranch":22,"hasWiki":23,"hasPages":21,"topics":24,"createdAt":9,"pushedAt":9,"updatedAt":25,"readmeContent":26,"aiSummary":27,"trendingCount":15,"starSnapshotCount":15,"syncStatus":28,"lastSyncTime":29,"discoverSource":30},74908,"cabinet","hilash\u002Fcabinet","hilash","AI-first knowledge base and startup OS",null,"TypeScript",2216,224,11,22,0,37,218,66,29.06,"MIT License",false,"main",true,[],"2026-06-12 02:03:29","\u003Cp align=\"center\">\n  \u003Cimg src=\"assets\u002Fcabinet-wordmark.svg\" alt=\"cabinet \u002Fˈkab.ɪ.nət\u002F\" width=\"920\">\n\u003C\u002Fp>\n\n\u003Cp align=\"center\">\n  \u003Cimg src=\"https:\u002F\u002Fruncabinet.com\u002Fdemo.gif\" alt=\"Cabinet demo\" width=\"900\">\n\u003C\u002Fp>\n\n\u003Ch1 align=\"center\">🗄️ Cabinet\u003C\u002Fh1>\n\n\u003Cp align=\"center\">\n  \u003Cstrong>Your knowledge base. Your AI team.\u003C\u002Fstrong>\u003Cbr \u002F>\n  \u003Csub>🗂️ Files on disk &nbsp;•&nbsp; 📁 AI workspaces &nbsp;•&nbsp; 🧠 Agents with memory\u003C\u002Fsub>\n\u003C\u002Fp>\n\n\u003Cp align=\"center\">\n  The AI-first startup OS where everything lives as markdown files on disk. No database. No vendor lock-in. Self-hosted. Your data never leaves your machine.\n\u003C\u002Fp>\n\n\u003Cp align=\"center\">\n  Built by Hila Shmuel, former Engineering Manager at Apple — now building Cabinet in public, with the open-source community.\n\u003C\u002Fp>\n\n\u003Cp align=\"center\">\n  \u003Ca href=\"https:\u002F\u002Fx.com\u002FHilaShmuel\" target=\"_blank\" rel=\"noopener noreferrer\">@HilaShmuel\u003C\u002Fa>&nbsp; • &nbsp;\n  \u003Ca href=\"https:\u002F\u002Fruncabinet.com\" target=\"_blank\" rel=\"noopener noreferrer\">runcabinet.com\u003C\u002Fa>&nbsp; • &nbsp;\n  \u003Ca href=\"mailto:hi@runcabinet.com\" target=\"_blank\" rel=\"noopener noreferrer\">hi@runcabinet.com\u003C\u002Fa>\n\u003C\u002Fp>\n\n\u003Cp align=\"center\">\n  \u003Ca href=\"https:\u002F\u002Fgithub.com\u002Fhilash\u002Fcabinet\u002Fstargazers\" target=\"_blank\" rel=\"noopener noreferrer\">\n    \u003Cimg src=\"https:\u002F\u002Fimg.shields.io\u002Fgithub\u002Fstars\u002Fhilash\u002Fcabinet?style=for-the-badge&logo=github&logoColor=white&label=Star%20the%20vision%20%F0%9F%98%8D%F0%9F%8C%9F&labelColor=4b4b4b&color=f5b301\" alt=\"Star Cabinet on GitHub\" valign=\"middle\">\n  \u003C\u002Fa>&nbsp;\n  \u003Ca href=\"https:\u002F\u002Fdiscord.gg\u002FhJa5TRTbTH\" target=\"_blank\" rel=\"noopener noreferrer\">\n    \u003Cimg src=\"https:\u002F\u002Fimg.shields.io\u002Fbadge\u002FDiscord-Join%20the%20community-5865F2?style=for-the-badge&logo=discord&logoColor=white&labelColor=4b4b4b\" alt=\"Join the Discord\" valign=\"middle\">\n  \u003C\u002Fa>&nbsp;\n  \u003Ca href=\"https:\u002F\u002Fruncabinet.com\u002Fwaitlist\" target=\"_blank\" rel=\"noopener noreferrer\">\n    \u003Cimg src=\"https:\u002F\u002Fimg.shields.io\u002Fbadge\u002F%F0%9F%97%84%EF%B8%8F%20Cabinet-Cloud%20Waitlist-55c938?style=for-the-badge&labelColor=4b4b4b\" alt=\"Cabinet Cloud Waitlist\" valign=\"middle\">\n  \u003C\u002Fa>&nbsp;\n  \u003Ca href=\"https:\u002F\u002Fcoderabbit.ai\" target=\"_blank\" rel=\"noopener noreferrer\">\n    \u003Cimg src=\"https:\u002F\u002Fimg.shields.io\u002Fcoderabbit\u002Fprs\u002Fgithub\u002Fhilash\u002Fcabinet?utm_source=oss&utm_medium=github&utm_campaign=hilash%2Fcabinet&labelColor=171717&color=FF570A&link=https%3A%2F%2Fcoderabbit.ai&label=CodeRabbit+Reviews\" alt=\"CodeRabbit Pull Request Reviews\" valign=\"middle\">\n  \u003C\u002Fa>\n\u003C\u002Fp>\n\n---\n\n## From zero to AI team in 2 minutes\n\n```bash\nnpx create-cabinet@latest\ncd cabinet\nnpm run dev:all\n```\n\nOpen [http:\u002F\u002Flocalhost:4000](http:\u002F\u002Flocalhost:4000). The onboarding wizard builds your custom AI team in 5 questions.\n\n---\n\n## Install, update, uninstall\n\nCabinet runs entirely through `npx` — no global install needed. The CLI is the [`cabinetai`](https:\u002F\u002Fwww.npmjs.com\u002Fpackage\u002Fcabinetai) package; `create-cabinet` is a thin wrapper around it.\n\n### Install \u002F create\n\n```bash\nnpx create-cabinet@latest          # create a cabinet and start it\nnpx cabinetai create my-startup    # just create, don't start\nnpx cabinetai run                  # start Cabinet in the current dir\n```\n\nOn first run, Cabinet downloads the app to `~\u002F.cabinet\u002Fapp\u002Fv{version}\u002F` and installs its dependencies there. Your cabinet directory is just a folder of markdown files — put it anywhere.\n\n### Update\n\n```bash\nnpx cabinetai update               # check for and install a newer app version\n```\n\nThe CLI compares your installed app version against `cabinet-release.json` from the latest GitHub Release.\n\n### Uninstall \u002F remove\n\n```bash\nnpx cabinetai uninstall            # remove cached app versions only\nnpx cabinetai uninstall --all      # also remove global state + telemetry data\nnpx cabinetai uninstall --yes      # skip the confirmation prompt\nnpx cabinetai remove               # alias for uninstall\n```\n\nThe command prints a summary of what will be deleted and asks for confirmation before doing anything. **Your cabinet directories and their data are never touched — those you'd delete manually.**\n\n`--all` additionally removes the platform-specific telemetry directory:\n\n- macOS: `~\u002FLibrary\u002FApplication Support\u002Fcabinet-telemetry\u002F`\n- Windows: `%APPDATA%\\cabinet-telemetry\\`\n- Linux: `$XDG_CONFIG_HOME\u002Fcabinet\u002F` (falls back to `~\u002F.config\u002Fcabinet\u002F`)\n\nTo wipe Cabinet completely, run `uninstall --all` and then `rm -rf` your cabinet directories yourself.\n\nSee [docs\u002FCABINETAI.md](docs\u002FCABINETAI.md) for the full CLI reference.\n\n---\n\n## The problem\n\nEvery time you start a new Claude session, it forgets everything. Your project context, your decisions, your research — gone. Scattered docs in Notion. AI sessions with no memory. Manual copy-paste between tools.\n\n## The solution\n\nOne knowledge base. AI agents that remember everything. Scheduled jobs that compound. Your team grows while you sleep.\n\n> If it feels like enterprise workflow software, it's wrong. If it feels like watching a team work, it's right.\n\n---\n\n## Philosophy\n\nCabinet is built around a few principles that we think matter deeply for the future of AI + data tools:\n\n- **Yours** — Your data stays yours: local, visible, and portable. It’s not trapped inside a particular AI provider’s system with no clean way to get it out. You stay in control of your information.\n- **Git everything** — Memory should have history. You should be able to inspect changes, revert mistakes, audit how knowledge evolves, and treat your AI system like the important infrastructure it is.\n- **BYOAI** — Bring your own AI. Cabinet should work with Claude, Codex, OpenCode, local models, and whatever comes next, without forcing your knowledge into a single provider’s ecosystem.\n- **KISS** — Keep it simple, stupid. AI tools should be understandable, inspectable, and hackable. We prefer plain files, clear behavior, and systems that developers can actually reason about.\n- **Security** — We care deeply about security. If AI is going to work with your documents, research, plans, and internal context, the system should minimize surprise, reduce unnecessary exposure, and make trust a design requirement rather than an afterthought.\n- **Self-hosted** — If AI is going to hold your context, plans, research, and operating memory, it should run in an environment you control.\n\n## Everything you need. Nothing you don't.\n\n| Feature | What it does |\n|---|---|\n| **WYSIWYG + Markdown** | Rich text editing with Tiptap. Tables, code blocks, slash commands. |\n| **AI Agents** | Each has goals, skills, scheduled jobs. Watch them work like a real team. |\n| **Skills** | Browse and install from skills.sh or any GitHub repo. Attach per agent, or `@`-mention in the composer to scope to a single task. |\n| **Scheduled Jobs** | Cron-based agent automation. Reddit scout every 6 hours. Weekly reports on Monday. |\n| **Embedded HTML Apps** | Drop an `index.html` in any folder — it renders as an iframe. Full-screen mode. |\n| **Web Terminal** | Interactive local AI CLI terminal in the browser. Kept for direct sessions, debugging, and future terminal-native features such as tmux-style Cabinet workflows. |\n| **File-Based Everything** | No database. Markdown on disk. Your data is always yours, always portable. |\n| **Git-Backed History** | Every save auto-commits. Full diff viewer. Restore any page to any point in time. |\n| **Missions & Tasks** | Break goals into missions. Track progress with Kanban boards. |\n| **Internal Chat** | Built-in team channels. Agents and humans communicate. |\n| **Full-Text Search** | Cmd+K instant search across all pages. Fuzzy matching. |\n| **PDF & CSV Viewers** | First-class support for PDFs and spreadsheets. |\n| **Dark\u002FLight Mode** | Theme toggle. Dark mode by default. |\n\n---\n\n## Ship HTML apps inside your knowledge base\n\nThis is the biggest difference between Cabinet and tools like Obsidian or Notion. Drop an `index.html` in any directory — it renders as an embedded app. Full-screen mode with sidebar auto-collapse. AI-generated apps written directly into your KB. Version controlled via git. No build step.\n\n---\n\n## Not another note-taking app\n\n| Feature | Cabinet | Obsidian | Notion |\n|---|---|---|---|\n| AI agent orchestration | Yes | No | No |\n| Scheduled cron jobs | Yes | No | No |\n| Embedded HTML apps | Yes | No | No |\n| Web terminal | Yes | No | No |\n| Self-hosted, files on disk | Yes | Yes | No |\n| No database \u002F no lock-in | Yes | Yes | No |\n| Git-backed version history | Yes | Via plugin | No |\n| WYSIWYG + Markdown | Yes | Yes | Yes |\n\n---\n\n## Hire your AI team in 5 questions\n\nCabinet ships with 20 pre-built agent templates. Each has a role, recurring jobs, recommended skills, and a workspace in the knowledge base.\n\n| Department | Agents |\n|---|---|\n| **Leadership** | CEO, COO, CFO, CTO |\n| **Product** | Product Manager, UX Designer |\n| **Marketing** | Content Marketer, SEO Specialist, Social Media, Growth Marketer, Copywriter |\n| **Engineering** | Editor, QA Agent, DevOps Engineer |\n| **Sales & Support** | Sales Agent, Customer Success |\n| **Analytics** | Data Analyst |\n| **Operations** | People Ops, Legal Advisor, Researcher |\n\n---\n\n## How it works\n\n1. **Install & Run** — One command. Next.js + daemon start.\n2. **Answer 5 Questions** — Cabinet builds your custom AI team.\n3. **Watch Your Team Work** — Agents create missions, write content, scout Reddit, file reports.\n4. **Knowledge Compounds** — Every agent run, every edit adds to the KB. Context builds over time.\n\n---\n\n## AI Runtime Today\n\nCabinet no longer treats the browser terminal as the only way to run AI work.\n\n- **Tasks, jobs, and heartbeats** now run through a provider adapter layer with persisted conversations and transcript-driven live views.\n- **Per-run overrides** can choose provider, model, and reasoning effort, while personas and jobs can still inherit defaults.\n- **Current defaults** are structured local adapters: `claude_local` for Claude Code and `codex_local` for Codex CLI.\n- **The web terminal is staying** as a first-class interactive surface for direct CLI sessions and future terminal-native features such as Cabinet-managed tmux-like workspaces.\n\n---\n\n## Architecture\n\n```\ncabinet\u002F\n  src\u002F\n    app\u002Fapi\u002F         -> Next.js API routes\n    components\u002F      -> React components (sidebar, editor, agents, jobs, terminal)\n    stores\u002F          -> Zustand state management\n    lib\u002F             -> Storage, markdown, git, agents, jobs\n  server\u002F\n    cabinet-daemon.ts -> WebSocket + job scheduler + structured adapters + agent executor\n    pty\u002F              -> PTY session module (spawn, Claude lifecycle, ansi)\n  data\u002F\n    .agents\u002F.library\u002F -> 20 pre-built agent templates\n    getting-started\u002F  -> Default KB page\n```\n\n**Tech stack:** Next.js 16, TypeScript, Tailwind CSS, shadcn\u002Fui, Tiptap, Zustand, xterm.js, node-cron\n\n---\n\n## Requirements\n\n- **Node.js** 22+ (LTS). The repo ships an `.nvmrc` — run `nvm use` to auto-switch. Node 20 still works but produces an `EBADENGINE` warning from a transitive `chevrotain@12` pulled in by mermaid.\n- At least one supported CLI provider:\n  - **Claude Code CLI** (`npm install -g @anthropic-ai\u002Fclaude-code`)\n  - **Codex CLI** (`npm install -g @openai\u002Fcodex` or `brew install --cask codex`)\n- macOS or Linux (Windows via WSL)\n\n## Configuration\n\n```bash\ncp .env.example .env.local\n```\n\n| Variable | Default | Description |\n|----------|---------|-------------|\n| `KB_PASSWORD` | _(empty)_ | Password to protect the UI. Leave empty for no auth. |\n| `DOMAIN` | `localhost` | Domain for the app. |\n\n## Commands\n\n```bash\nnpm run dev          # Next.js dev server (port 4000 by default)\nnpm run dev:daemon   # Unified daemon: structured runs, terminal sessions, WebSockets, scheduler (port 4100 by default)\nnpm run dev:all      # Both servers\nnpm run build        # Production build\nnpm run start        # Production mode (both servers)\n```\n\n---\n\n## Ready to build your AI team?\n\nCabinet is free, open source, and self-hosted. Your data never leaves your machine.\n\n```bash\nnpx create-cabinet my-startup\n```\n\n[Get Started](https:\u002F\u002Fruncabinet.com) | \u003Ca href=\"https:\u002F\u002Fgithub.com\u002Fhilash\u002Fcabinet\u002Fstargazers\" target=\"_blank\" rel=\"noopener noreferrer\">\u003Cimg src=\"https:\u002F\u002Fimg.shields.io\u002Fgithub\u002Fstars\u002Fhilash\u002Fcabinet?label=GitHub%20Stars&logo=github&color=f5b301\" alt=\"GitHub Stars\" valign=\"middle\">\u003C\u002Fa>\n\n---\n\n## Changelog\n\nSee [CHANGELOG.md](CHANGELOG.md) for breaking changes, or follow the full release history on the [documentation site](https:\u002F\u002Fruncabinet.com).\n\n## Privacy\n\nCabinet sends anonymous usage telemetry by default (event counts, versions,\nplatform — never file contents, paths, prompts, or secrets).\n\nTo turn it off, pick one:\n\n```bash\nexport CABINET_TELEMETRY_DISABLED=1   # env var (any shell session)\n```\n\n…or open **Settings → Privacy** and toggle **Send anonymous usage telemetry**\noff. To also wipe the local install ID and queue, run\n`npx cabinetai uninstall --all`.\n\nSee [TELEMETRY.md](TELEMETRY.md) for the full event list, payload schema,\nand where data is stored.\n\n## Community\n\nQuestions, ideas, feedback, screenshots, wild experiments — bring them to the [Discord](https:\u002F\u002Fdiscord.gg\u002FhJa5TRTbTH). That’s where the Cabinet community hangs out and where a lot of the product direction gets shaped in real time.\n\n---\n\n## Contributing\n\nCabinet is moving fast right now. We’d love thoughtful contributors who want to help shape it early.\n\nIf you’re thinking about opening a PR, please start by joining the [Discord](https:\u002F\u002Fdiscord.gg\u002FhJa5TRTbTH) and talking with Hila before coding. Hila is Cabinet’s builder, and that early sync helps us keep the roadmap coherent while the product is still evolving rapidly.\n\nOnce the direction is aligned, open your PR on [GitHub](https:\u002F\u002Fgithub.com\u002Fhilash\u002Fcabinet). The goal is not gatekeeping — it’s making sure your energy goes into work that has a clear path to landing and shipping.\n\n---\n\nMIT License\n\n---\n\n## Star History\n\n\u003Ca href=\"https:\u002F\u002Fwww.star-history.com\u002F?repos=hilash%2Fcabinet&type=date&legend=top-left\" target=\"_blank\" rel=\"noopener noreferrer\">\n \u003Cpicture>\n   \u003Csource media=\"(prefers-color-scheme: dark)\" srcset=\"https:\u002F\u002Fapi.star-history.com\u002Fchart?repos=hilash\u002Fcabinet&type=date&theme=dark&legend=top-left\" \u002F>\n   \u003Csource media=\"(prefers-color-scheme: light)\" srcset=\"https:\u002F\u002Fapi.star-history.com\u002Fchart?repos=hilash\u002Fcabinet&type=date&legend=top-left\" \u002F>\n   \u003Cimg alt=\"Star History Chart\" src=\"https:\u002F\u002Fapi.star-history.com\u002Fchart?repos=hilash\u002Fcabinet&type=date&legend=top-left\" \u002F>\n \u003C\u002Fpicture>\n\u003C\u002Fa>\n","Cabinet 是一个以AI为核心的初创企业操作系统和知识库。它通过将所有内容存储为磁盘上的Markdown文件来实现无数据库、无供应商锁定的自托管解决方案，确保数据始终保留在用户自己的设备上。核心功能包括支持文件管理和基于AI的工作空间及具有记忆功能的代理。特别适合需要高度控制自己数据，并希望通过AI技术提升团队协作效率的企业或个人开发者使用。项目采用TypeScript开发，由前苹果工程经理Hila Shmuel领导创建，遵循MIT许可证开放源代码。",2,"2026-06-11 03:51:23","high_star"]