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.1.tar.gz (188.9 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.1-py3-none-any.whl (288.4 kB view details)

Uploaded Python 3

File details

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

File metadata

  • Download URL: alfred_vault-0.2.1.tar.gz
  • Upload date:
  • Size: 188.9 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.1.tar.gz
Algorithm Hash digest
SHA256 0b824e4f37d11956af9139fbf46c6ee97a1d59db0a48a18c36037e1583175b61
MD5 f6a785ce063f66bef82df3a6c97a52aa
BLAKE2b-256 ffdb21b28e5ad387bcf7f3835a65e6f1501d513b8145daac313ab95716efd127

See more details on using hashes here.

File details

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

File metadata

  • Download URL: alfred_vault-0.2.1-py3-none-any.whl
  • Upload date:
  • Size: 288.4 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.1-py3-none-any.whl
Algorithm Hash digest
SHA256 8ac7dca69fd0b830eb2dbb4359cc3324a842c91610253c6dc41ea3fca2093574
MD5 050b404c788b97d3d0cdb9c82ccbcef3
BLAKE2b-256 89d6ed46d6b2e5f7ca88a6cf0580f23f55f0af8ac51c4a3e62320940913bb15f

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