By Jianhua-Wang
Notion for bots — capture + recall + project context for AI agents. Plugin bundles the botnote MCP server with /today, /show-todo, /remember, /recall, /add-task, /start-work, /done slash commands and a curator subagent.
Capture a botnote task without starting it. Use when the user says "add-task", "$add-task", or asks to capture a backlog item.
Mark a botnote task as done and optionally capture closing notes. Use when the user says "done", "finished", "completed", or signals a piece of work is finished.
Search botnote for stored notes and tasks. Use when the user says "find", "search", "recall", "do you remember", or asks what was stored about a topic.
Capture a free-form note into botnote. Use whenever the user says "remember X", "store this", "save this for later", or otherwise indicates something should be persisted.
Show the current botnote task and context summary. Use when the user says "show-todo", "$show-todo", or asks what's on their plate.
Admin access level
Server config contains admin-level keywords
Requires secrets
Needs API keys or credentials to function
Own this plugin?
Verify ownership to unlock analytics, metadata editing, and a verified badge. GitHub access is read-only (username + org membership).
Sign in to claimOwn this plugin?
Verify ownership to unlock analytics, metadata editing, and a verified badge. GitHub access is read-only (username + org membership).
Sign in to claimBased on adoption, maintenance, documentation, and repository signals. Not a security audit or endorsement.
This plugin requires configuration values that are prompted when the plugin is enabled. Sensitive values are stored in your system keychain.
botnote_urlDefault: https://botnote.net. Use http://127.0.0.1:4280 when running on the daemon host.
${user_config.botnote_url}botnote_tokenRequired for public or token-gated botnote URLs. Generate one in Settings -> API tokens. Not needed when botnote_url points to a trusted local daemon.
${user_config.botnote_token}Uses power tools
Uses Bash, Write, or Edit tools
Uses power tools
Uses Bash, Write, or Edit tools
Notion for bots. A single binary that stores projects, tasks, notes, and agent memory — and exposes them to AI agents via MCP and REST.
Agents work best with one stable, queryable, write-friendly source of truth — not a stack of Notion + Jira + Slack + scratch files. botnote is that source of truth, scoped to one user, deployable in 60 seconds.
Three things only:
task / note discriminated by kind column.text-embedding-3-small at 384 dimensions, written asynchronously. Falls back to BM25-only if no API key.:4280) over a shared service layer.actorKind (human / agent / system); idempotencyKey is supported on writes.2025-03-26 annotations: readOnlyHint, idempotentHint, destructiveHint, openWorldHint.Requires: Node 20+, pnpm, Docker.
On client machines, install the portable CLI from npm:
npm i -g botnote
botnote login
botnote login stores the daemon URL and bearer token in
~/.config/botnote/config.json. Use https://botnote.net plus a token from
Settings -> API tokens on remote machines; use http://127.0.0.1:4280 without
a token on the daemon host. New API tokens remain copyable from Settings; tokens
created before recoverable storage was added only show their prefix and should
be regenerated if the full value was lost.
Security note: newly-created API tokens are stored recoverably in the database so Settings can copy them later. Treat the database and backups as secret-bearing material, and revoke tokens if either is exposed.
The Claude Code, Codex, and Cursor plugins call botnote mcp, so installing
the npm package is enough for plugin runtime on machines that do not have a
botnote source checkout.
# 1. Spin up postgres (port 55434, pgvector extension)
docker compose up -d
# 2. Install deps
pnpm install
# 3. Apply schema
DATABASE_URL=[REDACTED:DB Connection String] pnpm db:migrate
# 4. Boot REST + Swagger UI
DATABASE_URL=[REDACTED:DB Connection String] pnpm dev
Then:
Embeddings are optional. Set OPENAI_API_KEY to enable hybrid (BM25 + cosine) search; without it, search is BM25-only.
Tests must run against a disposable database whose name contains test. The
helper refuses any other database name so local test runs do not touch a live
botnote instance.
docker compose up -d
docker exec botnote-postgres createdb -U botnote botnote_test || true
DATABASE_URL=[REDACTED:DB Connection String] pnpm db:migrate
BOTNOTE_TEST_DATABASE_URL=[REDACTED:DB Connection String] pnpm test
| method | path | summary |
|---|---|---|
POST | /v1/projects | Create project |
GET | /v1/projects | List projects |
GET | /v1/projects/:id | Fetch project |
PATCH | /v1/projects/:id | Update project |
GET | /v1/projects/by-key/:key | Fetch by key |
POST | /v1/projects/:id/opening-brief | Opening brief |
POST | /v1/opening-brief | Workspace or project opening brief |
POST | /v1/tasks | Create task |
POST | /v1/notes | Create note |
GET | /v1/entities/:id | Fetch entity |
PATCH | /v1/entities/:id | Update entity |
DELETE | /v1/entities/:id | Delete entity |
GET | /v1/entities/:id/related | List related entities |
POST | /v1/entities/:id/links | Link entity to another |
POST | /v1/recent | Recent activity |
POST | /v1/search | Hybrid search |
POST | /v1/tasks/range | Scheduled, overdue, and backlog tasks |
GET | /v1/tokens | List API tokens |
POST | /v1/tokens | Create API token |
DELETE | /v1/tokens/:id | Revoke API token |
GET | /health | Health check |
Schemas: see /docs (Swagger UI) or /docs/json (OpenAPI 3).
A=http://localhost:4280
PID=$(curl -s -X POST $A/v1/projects \
-H 'content-type: application/json' \
-d '{"key":"DEMO","name":"Demo","agentsMd":"ALWAYS run tests"}' \
| jq -r .id)
npx claudepluginhub jianhua-wang/botnote --plugin botnoteUltra-compressed communication mode. Cuts ~75% of tokens while keeping full technical accuracy by speaking like a caveman.
Comprehensive UI/UX design plugin for mobile (iOS, Android, React Native) and web applications with design systems, accessibility, and modern patterns
Memory compression system for Claude Code - persist context across sessions
Standalone image generation plugin using Nano Banana MCP server. Generates and edits images, icons, diagrams, patterns, and visual assets via Gemini image models. No Gemini CLI dependency required.
Multi-model consensus engine integrating OpenAI Codex CLI, Gemini CLI, and Claude CLI for collaborative code review and problem-solving.
Streamline people operations — recruiting, onboarding, performance reviews, compensation analysis, and policy guidance. Maintain compliance and keep your team running smoothly.