Skip to content

BotholomewAn AI agent for knowledge work.

Point it at your docs, projects, and inboxes and it reads them, remembers them, and works a durable task queue — summarizing, researching, organizing — while you sleep, work, or chat with it. Local, including local LLMs, and built around a large memory store rather than a single chat window.

 {o,o}
 /)_)
  " "

Botholomew chat TUI tour

Why I built this

I built the agent I wanted for my own manager-style work — the reading, summarizing, chasing-down, and remembering that fills a week. Nothing on the shelf fit, so Botholomew is opinionated on purpose:

  • Memory is the point, not a feature. I load it up with every Linear project and hundreds of Google Docs and expect it to search across all of them. The knowledge store isn't bolted on — the whole agent is built around it.
  • Local, including local LLMs. It runs on my machine and talks to Ollama just as happily as it talks to Anthropic.
  • Real tasks, not a swarm. Durable, schedulable, monitorable tasks with DAGs — not fire-and-forget subagents. (My distributed-systems background wouldn't let me ship anything less.)
  • Hyper-focused on tool use. Its reach into the outside world runs through an Arcade gateway — one authenticated door to hundreds of services, which is where most of the interesting work actually happens.

It's also nerdy by design: every prompt, task, thread, and belief is a plain file I can open, grep, and git diff. — Evan

For the honest version — including what I got wrong — see the field notes.

Why Botholomew?

Botholomew has no shell and no access to your real filesystem. The agent's world is a per-project knowledge store managed by membot — every read, write, search, and delete is addressed by logical_path (a DB key, not a filesystem path), so a prompt-injected attempt to reach ~/.ssh/id_rsa has nowhere to land. Local files and URLs are brought in through botholomew membot add. External capabilities (email, Slack, the web, and hundreds of other services) are granted deliberately, per project, through MCP servers wired up via MCPX.

Quickstart

bash
# 1. Install (requires Bun 1.1+)
bun install -g botholomew

# 2. Initialize a project
botholomew init

# 3a. Set your Anthropic API key (Claude is the default; embeddings always run locally)
export ANTHROPIC_API_KEY=sk-ant-...

# 3b. ...or run fully locally with Ollama:
#    ollama serve & ollama pull llama3.1:8b
#    botholomew init --force --provider ollama   # no API key needed

# 4. Queue some work and run a worker
botholomew task add "Summarize every markdown file in ~/notes"
botholomew worker run

# 5. Or chat with the agent interactively
botholomew chat

See Get started for the full walkthrough, then dive into Architecture to understand the moving parts.

For LLMs and AI agents

This site is published in LLM-friendly formats too:

  • /llms.txt — table of contents with links to every documentation page
  • /llms-full.txt — the entire doc set bundled into one file
  • Append .md to any page URL (e.g. /architecture.md) to get the raw markdown source

Point your agent at one of these instead of scraping HTML.

Released under the MIT License.