Skip to main content

AI-powered background services for Obsidian vault maintenance

Project description

🎩 Alfred

Your Obsidian vault runs itself.

Drop files into your inbox. Alfred structures, links, and organizes everything — automatically.

MIT License Python 3.11+ PyPI


You paste a meeting transcript into inbox/. A few seconds later, Alfred has:

  • Created a conversation record with participants, status, and activity log
  • Created or updated person records for everyone mentioned
  • Filed tasks with assignees and linked them to the right project
  • Connected everything with wikilinks so it shows up in the right Obsidian views automatically

You didn't trigger any of this. It just happened.


The Problem

Obsidian is powerful, but keeping a vault organized is a full-time job. You end up with orphaned notes, broken links, knowledge trapped inside meeting transcripts, and no clear picture of how your projects actually connect. The more you use it, the more maintenance it demands.

The Fix

Alfred is a set of AI-powered background services — four tools that continuously watch, clean, extract, and connect your vault while you do real work.

Tool What it does
Curator Watches inbox/ and turns raw files (emails, transcripts, notes) into structured records
Janitor Scans for broken links, missing frontmatter, orphaned files — and fixes them
Distiller Reads your notes and extracts decisions, assumptions, and constraints into an evidence graph
Surveyor Embeds your vault into vectors, clusters by semantic similarity, and writes relationship tags back

Quickstart

pip install alfred-vault
alfred quickstart          # interactive setup wizard
alfred up                  # start background daemons

That's it. The wizard handles vault path, agent backend, and directory scaffolding.

Prerequisites: Python 3.11+ and an AI agent on PATH. Default is Claude Code. Also supports Zo Computer (HTTP) and OpenClaw.

How It Works

Curator — Inbox → Structure

A new file appears in inbox/. Curator reads it, passes it to your AI agent with full vault context, and the agent creates whatever records the content calls for — conversations, people, tasks — all linked together.

Janitor — Entropy → Order

Periodically sweeps every file for structural problems: broken wikilinks, invalid frontmatter, orphaned files, stub records. In fix mode, hands the issues to the AI agent to repair automatically.

Distiller — Notes → Knowledge

Reads operational records (conversations, session logs, project notes) and surfaces latent knowledge worth extracting. Creates epistemic records: assumptions with confidence levels, decisions with rationale, constraints, contradictions, and syntheses. These form an evidence graph that evolves with your vault.

Surveyor — Isolation → Connection

Embeds vault content into vectors (Ollama locally or OpenAI-compatible API), clusters with HDBSCAN + Leiden community detection, asks an LLM to label the clusters, and writes relationship tags and wikilinks back into files. Three notes about the same theme that you never connected? Surveyor finds them.

Install

# Base (curator + janitor + distiller)
pip install alfred-vault

# Full (adds surveyor — requires Ollama + OpenRouter)
pip install "alfred-vault[all]"

# From source
git clone https://github.com/ssdavidai/alfred.git
cd alfred && pip install -e ".[all]"

Agent Backends

Backend Type Setup
Claude Code (default) Subprocess Install Claude Code, claude on PATH
Zo Computer HTTP API Set ZO_API_KEY in .env
OpenClaw Subprocess Install OpenClaw, openclaw on PATH

Set agent.backend in config.yaml to claude, zo, or openclaw.

Vault Structure

Structured Markdown with YAML frontmatter. 20 record types across three categories:

Category Types
Operational project, task, session, conversation, input, note, process, run, event, thread
Entity person, org, location, account, asset
Epistemic assumption, decision, constraint, contradiction, synthesis

Records link via [[wikilinks]] — open any project page and you'll see live tables of tasks, conversations, and people, populated automatically.

CLI Reference

# Daemons
alfred up                              # start all (background)
alfred up --foreground                 # attached mode (dev/debug)
alfred up --only curator,janitor       # start specific tools
alfred down                            # stop
alfred status                          # overview

# Individual tools
alfred curator                         # curator daemon (foreground)
alfred janitor scan                    # scan + report
alfred janitor fix                     # scan + AI fix
alfred janitor watch                   # periodic sweep daemon
alfred distiller scan                  # find candidates
alfred distiller run                   # scan + extract
alfred distiller watch                 # periodic daemon
alfred surveyor                        # full pipeline

# Vault operations
alfred vault create <type> <name>      # create record
alfred vault read <path>               # read record
alfred vault edit <path>               # edit record
alfred vault list [type]               # list records

# External commands with vault context
alfred exec -- <command>               # injects ALFRED_VAULT_PATH
alfred exec --scope curator -- <cmd>   # also sets ALFRED_VAULT_SCOPE

Configuration

alfred quickstart                      # recommended: interactive setup
# — or —
cp config.yaml.example config.yaml
cp .env.example .env

config.yaml has sections for vault, agent, logging, and each tool. Supports ${VAR} environment variable substitution. See config.yaml.example for all options.

Documentation

Full documentation is available in docs/ and on the GitHub Wiki:

Contributing

Alfred is early-stage and actively developed. Issues, PRs, and ideas are welcome.

License

MIT

Built with ❤️ by David Szabo-Stuban -> ScreenlessDad.com

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

alfred_vault-0.2.2.tar.gz (357.2 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

alfred_vault-0.2.2-py3-none-any.whl (457.0 kB view details)

Uploaded Python 3

File details

Details for the file alfred_vault-0.2.2.tar.gz.

File metadata

  • Download URL: alfred_vault-0.2.2.tar.gz
  • Upload date:
  • Size: 357.2 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.14.2

File hashes

Hashes for alfred_vault-0.2.2.tar.gz
Algorithm Hash digest
SHA256 c5df71aa0aec04ac6a6472479d3e86c186c1b9326a1eb65831d07ad54751fa28
MD5 ad3d44ccef6223c585d2c037186b644e
BLAKE2b-256 5687bb23184f892c404dfff264a26d3c08831ae72965f3a88b3a4bca246d1f0f

See more details on using hashes here.

File details

Details for the file alfred_vault-0.2.2-py3-none-any.whl.

File metadata

  • Download URL: alfred_vault-0.2.2-py3-none-any.whl
  • Upload date:
  • Size: 457.0 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.14.2

File hashes

Hashes for alfred_vault-0.2.2-py3-none-any.whl
Algorithm Hash digest
SHA256 64f2137eb6dc4192af77d3380681904a450d9878be044445f5be3c3607812a1c
MD5 c8986451a8ae87546e6843e7bb6ed11f
BLAKE2b-256 110f197b77a7113c2e7f0592eae7d8d35af68bf83addbc1486f029339d81223f

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page