Alcove
OfficialAlcove is a local-first personal information system that provides tools for managing knowledge, tasks, and external data integrations.
Search & Discovery
Unified search across knowledge, pins, ideas, and tasks with filters (tag, topic, date range, status, confidence)
Get topic overviews, active documents, and list known topics, tags, and domains
Inbox Management
Peek, read, add, archive, defer, or delete inbox items
Promote inbox items into knowledge notes or OKF Sources
Knowledge Base
Add notes, questions, and entities; record sources with platform, title, topic, and summary
Promote sources into knowledge concepts; refresh topics from active sources
Run health checks (gardener, doctor, validate)
Pins
Create, list, get, search, update, archive, and render pinned personal notes; rebuild the pins index
Tasks & Routines
Add, list, complete, and cancel tasks
Create and list recurring task templates (routines); materialize due routines into concrete tasks
Ideas
Add and list low-friction ideas; promote ideas into tasks
Projects
Add, get, find, list, and remove global project aliases; configure scan roots
Prompts
Save, search, get, archive, and list tags for reusable prompts; rebuild the prompt index
Mounts & Connectors
Add, list, and scan external mounted folders
Fetch, check status, and refresh connectors; import Apple Notes exports and GitHub Stars
Export
Export global Alcove data, a specific knowledge base, or all data at once
Click on "Deploy Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@Alcove peek at my inbox"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
Alcove
About The Project
Alcove keeps personal knowledge work inspectable, portable, and agent-friendly. It stores user data in local Markdown, YAML, and JSON, while providing governed CLI/MCP write paths and broad AI-led read paths.
The core model:
Read -> search candidates, inspect local evidence, synthesize with context
Write -> route through Alcove CLI/MCP contracts, update indexes, validateData ownership is explicit:
~/.alcovestores global memory, indexes, service state, dashboard snapshots, radars, publishers, automations, and usage rollups.Managed knowledge bases live wherever the user chooses and are registered under
~/.alcove/knowledge-bases/.Mounts and connectors index external sources without taking ownership of the original data.
The dashboard and Apple Notes publisher are derived views, not source-of-truth stores.
Related MCP server: brain2
Features
Managed knowledge bases — inbox capture, manual drafts, archive, OKF notes, taxonomy, validation, and indexed retrieval.
Global personal memory — pins, prompts, tasks, ideas, routines, and local project aliases under Alcove Home.
External knowledge sources — read-only mounts plus Apple Notes, GitHub Stars, and Chrome Bookmarks connectors.
Agent entry modes — Hub workspace, lightweight global MCP, managed-KB workspace, business workspace OKF, and local service runtime.
Configurable radars and monitors — scheduled information reports, watched feeds/pages, blog discovery, optional capture, optional AI summary, and Telegram/Feishu/tmux-claude-bot notification sinks.
Local dashboard — browser-facing workbench generated from local data.
External readable mirrors — Apple Notes publishing for selected personal memory views.
Health and repair — cross-module data checks, OKF validation, safe index rebuilds, deep local maintenance, and agent smoke/eval hooks.
Built With
Language / runtime — Python 3.12+
Packaging / environment — uv
CLI / MCP — argparse, FastMCP
Data formats — Markdown + YAML frontmatter, JSON, YAML
Quality gates — Ruff, mypy, pytest, pytest-cov, pip-audit, gitleaks
Architecture
Codex / Claude Code / CLI / MCP / Dashboard
│
▼
Alcove Application
│
┌────────────────┼────────────────┐
│ │ │
Managed KBs Global Memory External Indexes
inbox pins mounts
archive prompts connectors
OKF notes tasks fetch refs
validation projects OKF mirrors
│ │ │
└────────────────┼────────────────┘
▼
Global OKF Catalog / Search Rows
│
Dashboard / Publishers / ServiceKey design rules:
Reads are broad. Agents can search, inspect OKF files, follow source refs, fetch connector details, and read mounted evidence.
Writes are narrow. Durable mutations should go through Alcove CLI/MCP so frontmatter, provenance, indexes, activity logs, and health checks remain consistent.
Derived files are disposable. Rebuild dashboard snapshots, usage rollups, JSON indexes, and OKF catalogs from source-of-truth data.
See docs/architecture.md and docs/read-write-model.md for the full model.
Getting Started
Installation
uv tool install git+https://github.com/OctopusGarage/alcove.git
alcove --versionFor local development:
git clone https://github.com/OctopusGarage/alcove.git
cd alcove
uv sync
uv run alcove --version
uv tool install --force -e .First Setup
alcove home init
alcove kb add research_notes /path/to/research_notes
alcove hub init ~/AlcoveHub --default-kb research_notes
alcove hub install ~/AlcoveHub --default-kb research_notes
alcove workspace init family --default-kb research_notes
alcove workspace okf init family --json
alcove global install --default-kb research_notes
alcove kb install research_notesEntry profiles:
Mode | Purpose |
Hub workspace | Main AI workspace for broad personal knowledge work. |
Business workspace | Lightweight family/work/travel-style agent scene under the Hub concept. |
Global MCP | Lightweight search/save access from unrelated projects plus default background Apple Notes publishing. |
Managed KB workspace | Focused capture, inbox review, and OKF note workflows. |
Local service | launchd dashboard server and deterministic scheduler ticks. |
Development link mode keeps Alcove-owned skills and commands symlinked to the repository templates:
alcove hub install ~/AlcoveHub --default-kb research_notes --link
alcove workspace install family --link
alcove kb install research_notes --linkCore Workflows
Managed KB
alcove inbox --kb research_notes peek
alcove inbox --kb research_notes manual-add "Manual Thought" \
--content "Copied note text" \
--source "chat://manual"
alcove knowledge --kb research_notes note-source \
--platform web \
--title "Example" \
--topic agent-engineering/agent-harness \
--summary "Summary"
alcove search "Example" --kb research_notesGlobal Memory
alcove pin add "Useful Pattern" --description "Short reusable note" --tag reference
alcove prompt propose "Code Review Lens" --content "Review the diff for regressions..." --tag review
alcove prompt save --proposal-id <proposal-id>
alcove prompt recommend "review a dashboard regression before shipping"
alcove prompt compose "review a dashboard regression before shipping"
alcove prompt audit --json
alcove task add "Wire MCP search" --priority high --tag mcp
alcove project add alcove /path/to/alcove --note "Personal information core"External Indexes
alcove mount add /path/to/repos --name repos --type local-folder --profile docs --tag repos
alcove mount scan repos --dry-run --json
alcove mount scan repos --json
alcove connector github-stars import-url "https://github.com/octocat?tab=stars" --json
alcove connector chrome-bookmarks import-local --tag bookmarks --json
alcove connector apple-notes import-local --tag apple-notes --json
alcove connector status --jsonMount profiles keep local repository indexes focused. Use docs for README and
documentation-heavy repositories, site for blog/site content, notes for
personal Markdown folders, and capture-bundles for Clipsmith-style captured
article folders. Add --include and --exclude when a specific mount needs
custom rules.
Radars, Watchers, and Blogs
alcove radar preset list --json
alcove radar init tech-news --from-preset tech-news --json
alcove radar run tech-news --force --ai --notify --json
alcove watch add "Example Blog" https://example.com/feed.xml --kind rss --kb research_notes
alcove blog check --stale --jsonDashboard and Publishers
alcove dashboard --home ~/.alcove build
alcove serve --dashboard --home ~/.alcove --port 8765
alcove global install --default-kb research_notes
alcove publish init apple-notes --root-folder "iCloud/Alcove" --json
alcove publish run apple-notes --jsonalcove global install initializes the default Apple Notes publisher and
installs the scheduler LaunchAgent so due publisher runs happen through
background alcove service tick. Alcove writes to mirrored sources mark the
publisher dirty, so the next scheduler tick can re-export changed Notes before
the normal 24-hour TTL. Use alcove publish run apple-notes when an immediate
manual sync is needed.
Operations
Run a normal health check:
alcove health --home ~/.alcove --json
alcove health --home ~/.alcove --kb research_notes --fix --jsonRun a local full-maintenance pass:
alcove health --home ~/.alcove --fix --deep --json--deep rescans mounts, rebuilds usage rollups, rebuilds the dashboard snapshot,
and rebuilds the global OKF catalog. Connector refresh remains explicit:
alcove health --home ~/.alcove --fix --deep --refresh-stale-connectors --jsonServe deterministic background work through launchd:
alcove service install --dashboard --scheduler --load
alcove service status
alcove service tick --jsonBack up managed KB roots and ~/.alcove outside the Alcove runtime. Recommended
tools:
scheduled Git sync: https://github.com/OctopusGarage/git-auto-sync
optional Git encryption: https://github.com/AGWA/git-crypt
Documentation
Development
uv sync
uv run ruff check .
uv run ruff format --check .
uv run mypy
uv run pytest
scripts/verify/check.shCoverage is generated as coverage.xml by pytest and uploaded in CI from the
Ubuntu matrix job. See docs/coverage.md for Codecov setup.
License
Distributed under the MIT License. See LICENSE.
Available Tools
63 toolsalcove_connector_apple_notes_import_localC
Export local Notes.app notes into Alcove, then index them.
Inputs: home, tags, source_id, workspace, +1 more. Returns: object
alcove_connector_apple_notes_indexC
Index a deterministic Apple Notes export directory.
Inputs: export_dir (required), home, tags, workspace. Returns: object
alcove_connector_fetchC
Fetch detail for an indexed connector item.
Inputs: item_path (required), home, workspace. Returns: object
alcove_connector_github_stars_import_urlC
Fetch starred repositories from a GitHub stars page or username, then index them.
Inputs: source (required), home, tags, limit, +3 more. Returns: object
alcove_connector_github_stars_indexC
Index a GitHub Stars JSON export.
Inputs: export_file (required), home, tags, workspace. Returns: object
alcove_connector_refreshD
Refresh registered connector sources.
Inputs: home, connector, source_id, workspace, +1 more. Returns: object
alcove_connector_statusC
Show registered connector sources and freshness status.
Inputs: home, connector, workspace. Returns: object
alcove_doctorC
Check managed knowledge base health.
Inputs: workspace. Returns: object
alcove_export_allC
Export Alcove Home and all registered managed knowledge bases.
Inputs: output_dir (required), home. Returns: object
alcove_export_globalC
Export Alcove Home global data.
Inputs: output_dir (required), home. Returns: object
alcove_export_kbC
Export a registered managed knowledge base.
Inputs: kb (required), output_dir (required), home. Returns: object
alcove_gardenerC
Scan Alcove knowledge health and optionally prune safe issues.
Inputs: prune, workspace. Returns: object
alcove_get_topicC
Return a topic overview and active Alcove docs for that topic.
Inputs: topic (required), limit, workspace. Returns: object
alcove_idea_addC
Add a low-friction idea.
Inputs: title (required), home, tags, notes, +1 more. Returns: object
alcove_idea_listC
List low-friction ideas.
Inputs: home, status, workspace. Returns: object
alcove_idea_promoteC
Promote an idea into a concrete task.
Inputs: idea_id (required), due, home, notes, +2 more. Returns: object
alcove_inbox_archiveC
Archive an inbox item as an OKF Source.
Inputs: name (required), topic (required), tags, summary, +4 more. Returns: object
alcove_inbox_deleteC
Delete or preview deleting an inbox item.
Inputs: name (required), confirm, workspace. Returns: object
alcove_inbox_manual_addC
Add manual content to a managed knowledge base inbox.
Inputs: title (required), content (required), source, workspace. Returns: object
alcove_inbox_noteC
Archive an inbox item and write a knowledge note.
Inputs: name (required), topic (required), summary (required), why, +9 more. Returns: object
alcove_inbox_peekC
Inspect the oldest pending Alcove inbox item.
Inputs: workspace. Returns: object
alcove_inbox_readC
Read a managed knowledge base inbox item.
Inputs: name (required), workspace. Returns: object
alcove_inbox_todoC
Move an inbox item to managed knowledge base todo.
Inputs: name (required), reason, workspace. Returns: object
alcove_knowledge_add_entityD
Add an OKF Entity.
Inputs: name (required), topic (required), kind, tags, +5 more. Returns: object
alcove_knowledge_add_noteC
Add a standalone OKF Knowledge Concept.
Inputs: title (required), topic (required), tags, summary, +1 more. Returns: object
alcove_knowledge_add_questionC
Add an OKF Question.
Inputs: topic (required), question (required), tags, answer, +2 more. Returns: object
alcove_knowledge_promoteC
Promote an OKF Source into a Knowledge Concept.
Inputs: source (required), topic, summary, workspace. Returns: object
alcove_knowledge_refreshD
Refresh a topic from active sources.
Inputs: topic (required), summary, in_place, workspace. Returns: object
alcove_knowledge_topicsC
List known OKF topics, tags, and domains.
Inputs: workspace. Returns: object
alcove_link_sourceC
Create a Source from an indexed external item.
Inputs: topic (required), item_path (required), home, summary, +2 more. Returns: object
alcove_mount_addC
Add a mounted external source.
Inputs: path (required), home, name, tags, +2 more. Returns: object
alcove_mount_listC
List configured Alcove mounts.
Inputs: home, status, workspace. Returns: object
alcove_mount_scanD
Scan mounted external sources.
Inputs: home, mount_id, workspace. Returns: object
alcove_note_sourceC
Record a source note in Alcove knowledge.
Inputs: title (required), topic (required), platform (required), tags, +5 more. Returns: object
alcove_pin_addC
Create a pinned personal note.
Inputs: title (required), home, kind, tags, +8 more. Returns: object
alcove_pin_archiveC
Archive or preview archiving a pin.
Inputs: pin_id (required), home, confirm, workspace. Returns: object
alcove_pin_getC
Get a pinned personal note.
Inputs: pin_id (required), home, workspace. Returns: object
alcove_pin_listC
List pinned personal notes.
Inputs: tag, home, status, workspace. Returns: object
alcove_pin_rebuild_indexD
Rebuild the pins index.
Inputs: home, workspace. Returns: object
alcove_pin_render_htmlC
Render the pins HTML board.
Inputs: home, workspace, output_path. Returns: object
alcove_pin_searchC
Search pinned personal notes.
Inputs: tag, home, kind, query, +2 more. Returns: object
alcove_pin_updateC
Update a pinned personal note.
Inputs: pin_id (required), home, kind, tags, +10 more. Returns: object
alcove_project_addC
Create or update a global project alias.
Inputs: path (required), alias (required), home, note, +1 more. Returns: object
alcove_project_findC
Find global project aliases or scanned root projects.
Inputs: keyword (required), home, workspace. Returns: object
alcove_project_getC
Get a global project alias.
Inputs: alias (required), home, workspace. Returns: object
alcove_project_listC
List global project aliases.
Inputs: home, workspace. Returns: object
alcove_project_removeC
Remove a global project alias.
Inputs: alias (required), home, workspace. Returns: object
alcove_project_roots_setC
Configure roots scanned by project find.
Inputs: roots (required), home, workspace. Returns: object
alcove_prompt_archiveC
Archive or preview archiving a reusable OKF prompt.
Inputs: prompt_id (required), home, confirm, workspace. Returns: object
alcove_prompt_getC
Get a reusable OKF prompt.
Inputs: prompt_id (required), home, workspace. Returns: object
alcove_prompt_rebuild_indexC
Rebuild the reusable OKF prompt index.
Inputs: home, workspace. Returns: object
alcove_prompt_saveC
Save or update a reusable OKF prompt.
Inputs: title (required), content (required), home, tags, +4 more. Returns: object
alcove_prompt_searchC
Search reusable OKF prompts.
Inputs: tag, home, query, status, +1 more. Returns: object
alcove_prompt_tagsC
List reusable OKF prompt tags.
Inputs: home, workspace. Returns: object
alcove_routine_addC
Create a recurring task template.
Inputs: title (required), home, tags, notes, +4 more. Returns: object
alcove_routine_listC
List recurring task templates.
Inputs: home, status, workspace. Returns: object
alcove_routine_materialize_dueC
Create tasks for due recurring templates.
Inputs: home, today, workspace. Returns: object
alcove_searchC
Search Alcove knowledge, pins, ideas, and tasks.
Inputs: tag, home, limit, query, +8 more. Returns: object
alcove_task_addC
Create a personal task.
Inputs: title (required), due, home, tags, +3 more. Returns: object
alcove_task_cancelC
Cancel a task.
Inputs: task_id (required), home, workspace. Returns: object
alcove_task_completeC
Complete a task.
Inputs: task_id (required), home, workspace. Returns: object
alcove_task_listD
List personal tasks.
Inputs: home, status, workspace. Returns: object
alcove_validateC
Validate a managed knowledge base.
Inputs: workspace, strict_quality. Returns: object
Tool Schema Changelog
Recent tool additions, removals, and schema changes observed during successful MCP inspections.
Loading tool schema changelog…
TDQS
Scored across 63 tools
Tools are grouped by area (connector, inbox, knowledge, etc.) and within each group have distinct actions, but some overlap exists between knowledge add_note and note_source, or idea_add and inbox_manual_add, causing potential confusion.
All tools start with 'alcove_' and use underscore-separated words, but the order of area and verb varies (e.g., 'alcove_get_topic' vs 'alcove_idea_add'), though overall it remains readable and systematic.
With 63 tools, the set is extremely large for an MCP server. Even though the domain is broad, the number overwhelms and likely exceeds typical agent capacity to choose effectively.
Covers many operations across knowledge, tasks, pins, etc., but lacks update/delete for some entity types (e.g., knowledge notes, tasks) and missing remove for connectors or mounts, leaving notable gaps.
Maintenance
Related MCP Connectors
Private-by-default, local-first memory/context/task orchestrator for MCP apps and agents.
Agent-native notes, tasks, dev-docs, vaults, sync & handoffs. MCP + OpenAPI dual surface.
Persistent memory, knowledge graph, task management and more for AI agents via MCP.
Your personal library, readable by AI agents: durable snapshots, hybrid search, 46 MCP tools.
Related MCP Servers
- AlicenseNot gradedqualityBmaintenanceA local-first AI secretary that gathers your work context into private memory and enables AI agents to search and summarize it over MCP.18 npmMIT
- FlicenseNot gradedqualityDmaintenanceA database-first personal knowledge management system powered by a local MCP server, providing 29 tools to manage and search structured knowledge (meetings, emails, people, accounts, projects, todos, etc.) via a single SQLite file.-
- AlicenseNot gradedqualityDmaintenanceLocal-first Knowledge Management System that exposes markdown-based durable memory as MCP tools for Codex and ChatGPT, enabling search, read, write, and promotion workflows with project and global scopes.MIT
- AlicenseNot gradedqualityDmaintenanceLocal-first memory server that stores notes, contacts, and future data as a unified entity graph, providing hybrid retrieval (vector + keyword) for AI assistants via MCP.4MIT