busabase

mcp
Security Audit
Warn
Health Warn
  • License — License: MIT
  • Description — Repository has a description
  • Active repo — Last push 0 days ago
  • Low visibility — Only 9 GitHub stars
Code Warn
  • process.env — Environment variable access in apps/busabase-cli/src/run.ts
  • network request — Outbound network request in apps/busabase-cli/src/run.ts
Permissions Pass
  • Permissions — No dangerous permissions requested

No AI report is available for this listing yet.

SUMMARY

⚡ The approval-first, open-source database & knowledge base for AI agents — review & approve every change before it's trusted. Local-first, self-hostable Airtable/Notion alternative.

README.md
Busabase

Busabase

Local-first review database for AI-generated content, business data, datasets & multimodal knowledge.
AI can generate endless data — Busabase is where you review, approve, and merge what's good enough to trust.

中文  ·  日本語  ·  한국어

npm busabase npm busabase-cli Docker image Download Busabase Desktop License MIT GitHub stars

Quick Start  ·  Screenshots  ·  Use Cases  ·  API  ·  Compare  ·  Roadmap


Busabase — review AI-proposed changes before they become trusted data

Busabase is a free and open-source (MIT) app for one simple problem:

AI can generate endless content and data, but someone still needs to decide what is good enough to trust.

Busabase gives that approval process a home — an approval-first database and knowledge base for AI agents. It is a private CMS, project database, and structured source of truth with built-in Change Requests, Operations, comments, audit trails, and a simple API for apps and AI agents.

How Busabase works: propose → change request → review → merge → trusted database & knowledge base, with a revise loop and reject path

Free & open source. Local-first. Review-first. Agent-ready.
Run it yourself — no SaaS, no account, no vendor. Your data never has to leave your machine.

Quick Start

Pick whichever way you like — all of them give you the same review-first database.

⚡ Run it now — one command, zero setup

npx busabase server

Open http://localhost:15419/dashboard/inbox. That's the whole setup: a full local
instance with embedded PGlite and local file storage — no database to run, nothing to
configure.
Busabase seeds example Bases, records, and Change Requests on first request,
so you can inspect the review workflow immediately.

npm i -g busabase     # install once, then just: busabase server
npx busabase-cli --help   # the API client on its own (talks to any busabase server)

🐳 Docker

docker run --rm -p 3000:3000 busabase/busabase

Open http://localhost:3000/dashboard/inbox. Defaults to local PGlite persistence — no
external services. Images are published to Docker Hub (busabase/busabase) and GHCR
(ghcr.io/busabase/busabase).

🖥️ Desktop app

Prefer a native app? Download Busabase for macOS, Windows, and Linux at
busabase.com/download. Fully native and fully offline —
all your data stays on your computer, never online.

🔧 From source

pnpm install
cp apps/busabase/.env.example apps/busabase/.env
pnpm --filter busabase dev

Open http://localhost:15419/dashboard/inbox. A local-start check runs first: if
dependencies, PG_DATABASE_URL, or STORAGE_URL are missing, it fails with a setup message
instead of a blank dashboard. The default .env.example uses PGlite under .data/busabase
and local file storage under .data/busabase-storage.


What you get after launch:

  • an Inbox for reviewing Change Requests
  • example Bases and records
  • record-level history and audit trails
  • local PGlite persistence under .data/busabase
  • REST API endpoints for apps, workflows, and AI Agents

Where your data lives

npx busabase server and the desktop app share one local data root so you see the
same database whichever way you launch:

~/.busabase/data/
├── pgdata/    # embedded PGlite database
└── storage/   # uploaded attachments

Point them somewhere else with BUSABASE_DATA_DIR (or busabase server --db <dir>), or
set PG_DATABASE_URL / STORAGE_URL directly to use external Postgres / S3.

Docker writes to /data inside the container — bind-mount the same host folder to share
that one database with the CLI and desktop app:

docker run --rm -p 3000:3000 -v ~/.busabase/data:/data busabase/busabase

(Running from source with pnpm dev instead uses the repo's .env, i.e. .data/busabase.)
Only one process can hold the PGlite database at a time, so run one launcher at a time.

Screenshots

Inbox review list Agent-proposed diff
Inbox with pending Change Requests, reviewer status, and approval actions Agent-proposed changes before merge, including field diffs and reviewer actions
Record detail lineage Base table
Record detail page with fields, comments, review history, and lineage Base table showing structured records and rich fields
Base records table Graph view with seed data
Records inside a Base — typed fields, rich values, and approval status at a glance Graph view showing relationships between seeded records across Bases

On mobile

Review and approve agent Change Requests from your phone — the same inbox, proposal preview, and trusted records, in the Busabase mobile app.

Mobile inbox — pending Change Requests from agents    Mobile Change Request — agent-proposed operations and fields under review    Mobile record detail — trusted fields after approval

Why This Exists

Most databases are good at storing data. Most CMS tools are good at publishing content. Most code platforms are good at reviewing files.

Busabase is for the middle layer that AI-heavy teams now need:

Need Busabase gives you
AI drafts a blog post Review it before it becomes a published CMS record
Humans clean QA data Approve high-quality examples before training or evaluation
Agents label videos Check multimodal metadata before it enters the dataset
Agents update project or ERP data Human reviewers approve changes before the system of record changes
A local AI tool needs memory Expose a private, audited API over approved knowledge
Data changes should trigger work Fire webhooks, automations, or external agents after approved merges
Someone changes a record Track who proposed, reviewed, merged, viewed, or deleted it

It is approval-first by default, agent-friendly by design, and still small enough to run locally.

Concepts

Core concepts:

Concept Meaning
Base A table-like collection of records
Field A typed property on a Base
Record An approved row of data
Change Request A reviewable proposal to change data
Operation A create, update, delete, or variant action inside a Change Request
Commit Immutable data snapshot behind an Operation
Comment Discussion attached to records, Change Requests, operations, or commits
Audit Event A trail of important reads, writes, reviews, merges, and deletes

Use Cases

Any base an agent can write — reviewed first. A few of the things people build on Busabase:

Use case What you review
Blog CMS for Next.js AI-drafted posts, reviewed before they publish
SEO Landing Pages AI-generated landing pages, approved before they go live
Configuration Management Service YAML/JSON reviewed before it ships
Finance & Invoice Review Automated finance entries a human signs off
Data Stewardship & CRM Hygiene A review queue that keeps business data clean
Compliance & Audit Checklists Recurring checks with evidence and an audit trail
QA & Training Datasets Curated, approved examples for training / eval / RAG
Multimodal Content Review Image / audio / video metadata reviewed first
Market Intelligence A human-reviewed research & monitoring feed
Content Factory Pipeline Idea → draft → approved asset, end to end
Dataset Labeling Pipeline Agent-first labeling with human review
Project Management & ERP Operational data changes behind an approval gate
Canonical System of Record The single source of approved, canonical data
Local Personal Knowledge Base A private, audited database for you and your AI tools
Verified Routine Work Recurring work that's done, reviewed, and recorded
Field Type Lab Every field type and review op in one local scenario

→ See all 16 use cases, with screenshots

Automation and ACP Agents

Busabase can become an event source for data workflows.

During review, a human can ask an ACP-compatible agent to improve the Change Request before it is merged:

  • clean fields
  • enrich missing metadata
  • normalize categories
  • rewrite a draft
  • generate summaries or tags
  • check policy, quality, or consistency

After merge, approved data can trigger downstream automation:

  • send a webhook
  • update an external system
  • notify a reviewer or channel
  • refresh a Next.js site
  • kick off an ETL or dataset export
  • call an external ACP Agent to continue the workflow

That makes Busabase more than a place to store data. It becomes a controlled handoff point between humans, applications, and agents.

Local Agents Operate Your Knowledge Base

Busabase is built to be driven by the agents already running on your own computer.

Because the API is local and trusted, you can point coding and automation agents — OpenClaw, Codex, Claude Code, Hermes, and similar local skills — directly at your Busabase instance. They can read approved knowledge, run skills against it, and propose changes back as Change Requests.

What a local agent can do with Busabase:

  • read your private, approved knowledge as grounded context
  • run a local skill that queries or summarizes your bases
  • propose new records or edits as reviewable Change Requests
  • enrich, clean, or label data without uncontrolled write access
  • wait for human approval before anything becomes trusted

The pattern is simple:

Local agent reads approved knowledge ->
proposes a Change Request ->
you review on your own machine ->
approve -> merged into your local source of truth

This keeps the loop entirely on your hardware. The agent gets a real, structured memory to work against, and you keep authority over what becomes trusted — no private data has to leave your computer for any of it to work.

If OpenClaw is the revolution for agents on your local computer, then BusaBase is the revolution for the database and knowledge base on your local computer.

What Busabase Cares About

Busabase is not just asking "what is the latest value in this row?"

It also asks:

  • Who proposed this data?
  • Why should it change?
  • Which fields changed?
  • Is this a create, update, delete, or variant operation?
  • What did the AI Agent produce before it was accepted?
  • Who reviewed the agent output?
  • Did a human ask the agent to revise?
  • Was the proposal merged or rejected?
  • What automation ran after merge?
  • Can we trace the decision later?

That makes Busabase especially useful for AI Agent work. Agents can produce drafts, labels, summaries, reconciliations, or operational updates, but Busabase gives humans a preview layer before those outputs become trusted data.

How Busabase Compares

Busabase overlaps with familiar tools, but it's optimized for a different job: AI agents writing data, and humans approving it before it's trusted.

Tool Great for What Busabase adds
Airtable Flexible cloud tables for human teams Local-first ownership + an approval gate: agents propose, humans approve, with diff preview, history, and audit trails
APITable Open-source, API-first Airtable alternative API-first plus a review layer between proposal and trusted record
NocoDB Spreadsheet UI on top of your SQL database Every write is a reviewable Change Request, not a direct row edit
Baserow Self-hosted no-code database Change Requests, audit trails, and agent hooks
Notion Cloud docs, databases, and team knowledge A pure, local, structured knowledge base with a built-in review flow — no vendor cloud
Confluence / Lark Vendor-hosted team wikis Runs on your machine first; data never has to leave it
Obsidian Local-first Markdown notes for a human Local too — but a structured database for agents: Change Requests, approval, and audit, not free-form notes
PostgreSQL Reliable storage and querying Human-readable Change Requests, reviews, comments, and automation around every change
GitHub Pull Requests Code review over file diffs Record-based review for content, datasets, CRM rows, tasks, and multimodal data

Most of these assume the writer is a trusted human (or a script you wrote). Busabase assumes the writer is often an AI agent — and that not every agent write should be trusted automatically. So it adds what an agent-driven database needs:

  • A proposal layer — agents submit Change Requests instead of editing rows directly.
  • A preview before merge — see exactly what the agent produced, field by field.
  • A revise loop — ask the agent to fix the proposal before it's accepted.
  • An audit trail — every read, write, review, merge, and delete is traceable.
  • A local, trusted API — built for agents on your own machine, not just human spreadsheet users.
Airtable / APITable: a database for people to edit.
Busabase: a database for agents to propose and people to approve.

Local-first, not cloud-first. Your data stays on your machine or private network by default. Need remote or agent access? Open a tunnel to expose selected endpoints instead of copying everything into a central cloud database. Self-hostable, free, and open-source.

Features

  • Local-first open-source app
  • Built-in review workflow
  • Change Requests with multiple Operations
  • Create, update, delete, and variant operations
  • Commit history for record changes
  • Comments on records and review objects
  • Audit events for reads and writes
  • Markdown, HTML, links, files, relation fields, and rich field types
  • Search-ready indexed field values
  • REST API for apps, workflows, and AI agents
  • Human-in-the-loop collaboration for agent-proposed changes
  • AI Agent output preview before merge
  • Single source of truth for approved operational records
  • Automation triggers after approved data changes
  • ACP Agent hooks during review and after merge
  • PGlite local persistence
  • Docker-friendly deployment

API Surface

Busabase exposes a simple local REST API for dashboard clients, apps, and AI agents.

Typical resources include:

  • Bases and nodes
  • Records
  • Search
  • Comments
  • Change Requests
  • Reviews
  • Merge actions
  • Activity and audit events

The API is meant for trusted local or private-network usage in the open-source version.

Agent Proposal Example

This is the core agent loop: read the schema, submit a proposal, review it in the UI, then read the
canonical record after merge.

# 1. Find the Blog Posts base.
BLOG_BASE_ID=$(curl -s http://localhost:15419/api/v1/bases \
  | jq -r '.[] | select(.slug == "blog") | .id')

# 2. Let an agent propose a new record. This creates a Change Request, not canonical data.
CHANGE_REQUEST_ID=$(curl -s -X POST \
  "http://localhost:15419/api/v1/bases/$BLOG_BASE_ID/change-requests" \
  -H 'content-type: application/json' \
  -d '{
    "fields": {
      "title": "Agent market note",
      "body": "Drafted by an agent, waiting for human review.",
      "channel": "blog"
    },
    "message": "Agent proposed a market note",
    "submittedBy": "local-agent"
  }' | jq -r '.id')

# 3. Review it in the dashboard.
echo "Review: http://localhost:15419/dashboard/inbox/$CHANGE_REQUEST_ID"

# 4. Optional automation after a human approves: merge and read canonical records.
curl -s -X POST "http://localhost:15419/api/v1/change-requests/$CHANGE_REQUEST_ID/merge" \
  | jq '.record.id, .record.headCommit.fields.title'
curl -s "http://localhost:15419/api/v1/records?baseId=$BLOG_BASE_ID" \
  | jq '.[].headCommit.fields.title'

For machine-readable endpoint docs, open:

http://localhost:15419/api/v1/doc

When To Use Busabase

Use Busabase when:

  • AI generates content but humans approve what becomes trusted.
  • AI agents propose updates, but humans keep final authority.
  • You want an approval-based project management, CRM, ERP, or operations database.
  • You have routine operational work that must be completed, reviewed, and logged.
  • Your team needs high-quality datasets with review history.
  • You need humans to preview AI Agent outputs before they become trusted records.
  • You want a CMS that treats content as structured records.
  • You need a private local database that AI can read safely.
  • You want data to stay distributed across people's local workspaces, with selective sharing when needed.
  • You need a single source of truth for approved business data.
  • You want approved data changes to trigger webhooks, workflows, or external agents.
  • You want agents to help refine Change Requests before humans approve them.
  • Your data is multimodal, not just rows of plain text.
  • You care about who viewed, changed, reviewed, merged, or deleted data.

Do not use Busabase as your primary code review system. Use GitHub pull requests for code.

Roadmap

Busabase starts local-first, then expands outward.

Local Busabase

The open-source version runs locally and stores data under your control.

Use it when:

  • your data should stay on your machine
  • AI Agents need a private API to approved knowledge
  • personal or team workflows need review and audit trails
  • you want a database that can work without a hosted cloud account

Busabase Tunnel

A future tunnel mode can expose a local Busabase instance to the public internet or a controlled network without moving all data into a central cloud database.

Use it when:

  • an external AI Agent needs to call your local Busabase API
  • a collaborator needs temporary access to selected local data
  • your company wants distributed data ownership across different people's machines
  • data should remain local, but certain approved records or endpoints should be reachable

This is different from cloud-first tools like Notion or Airtable. Busabase can let data remain distributed with the people or teams who own it, while still offering controlled API access, review, automation, and audit trails.

Open-Source Shape

The local open-source version is intentionally small:

  • no login by default
  • one local workspace
  • app-local Drizzle schema
  • PGlite persistence under .data/busabase
  • dashboard at /dashboard/inbox
  • REST API for local apps and trusted agents

The goal is to make a private, reviewable data workspace that anyone can run.

Security Note

Busabase is designed for trusted local or private-network deployment.

Do not expose write endpoints to the public internet without a reverse proxy, token layer, or another access-control layer.

Contributing

Busabase is built in the open — bug reports, feature ideas, docs, and PRs are all welcome.

pnpm install
pnpm --filter busabase dev   # http://localhost:15419/dashboard/inbox

Before sending a PR, run pnpm --filter busabase typecheck && pnpm --filter busabase lint. Found a bug or have an idea? Open an issue or start a discussion.

Community

  • Star the repo if Busabase is useful to you — it genuinely helps others find it.
  • 🐛 Issues  ·  💬 Discussions  ·  🌐 busabase.com

Star History

Busabase star history

License

MIT © Busabase

Reviews (0)

No results found