Skip to main content

Personal agentic infrastructure. Self-hosted. Always on.

Project description

Alfred

Personal agentic infrastructure. Self-hosted. Always on.

A layered AI architecture that captures your data, maintains your knowledge, executes your workflows, and communicates on your behalf.

MIT License Python 3.11+ PyPI


Chatbots answer questions. Agentic tools complete tasks. Alfred runs your life.

Alfred is a self-hosted agentic butler — six layers of intelligence that work together so your AI doesn't just respond when prompted, it observes, thinks, acts, and learns continuously. Your Obsidian vault becomes a living knowledge graph that both you and your agents maintain together. Temporal workflows execute durable, auditable operations. Data pipelines capture the world around you. And it all runs on infrastructure you control.


The Six Layers

 Interface     Telegram, WhatsApp, Slack, iMessage, SMS, email, CLI, TUI
     |
   Agent        Claude Code, Zo Computer, OpenClaw — pluggable AI backends
     |
  Kinetic       Temporal workflows — durable, scheduled, auditable execution
     |
 Semantic       Obsidian vault — human-readable, agent-writable knowledge graph
     |
   Data          Omi transcripts, meeting recordings, email digests, RSS — raw signal in
     |
   Infra         Mac Mini, VPS (Hetzner/DO/AWS), personal cloud (Zo Computer)

Semantic Layer — Your vault is the single source of truth

An Obsidian vault with 20 structured record types, wikilinked into a knowledge graph that both you and your agents can read, write, and reason over. Four specialized workers maintain it continuously:

Worker Role
Curator Watches inbox/ and turns raw files (transcripts, emails, notes) into structured, interlinked records
Janitor Scans for broken links, invalid frontmatter, orphaned files — and fixes them
Distiller Reads operational records and extracts latent knowledge: assumptions, decisions, constraints, contradictions
Surveyor Embeds content into vectors, clusters by semantic similarity, discovers and writes relationship tags

The vault is both the agent's operational memory and your second brain. Not a database — a browseable, versioned, wikilinked knowledge base.

Kinetic Layer — Durable workflow execution

A Temporal-based execution engine that orchestrates agent work as durable workflows. If it crashes, it picks up where it left off. An agent can sleep for days and resume with full context.

alfred temporal worker                    # start the workflow worker
alfred temporal run MyWorkflow            # trigger a workflow
alfred temporal schedule register defs.py # register cron schedules
alfred temporal list                      # list discovered workflows

Write workflows in Python. Activities like spawn_agent, run_script, and notify_slack are built in. The agent handles reasoning; Python handles control flow.

Agent Layer — Pluggable AI backends

Backend Type Notes
Claude Code Subprocess Default. Install Claude Code, claude on PATH
Zo Computer HTTP API Cloud-based. Set ZO_API_KEY in .env
OpenClaw Subprocess Self-hosted. Supports multi-stage pipelines

Switch backends without rewiring. Configure per-workflow agent profiles with different backends, skills, and scopes.

Data Layer — Pipelines that capture the world

Feed data into your vault's inbox/ from any source. The Curator processes it into structured records automatically.

  • Omi wearable transcripts (conversations processed into records)
  • Meeting recordings (Zoom, Sembly AI)
  • Email digests, RSS feeds, API webhooks
  • Bulk imports via alfred ingest

Interface Layer — Meet Alfred where you are

The interface is governed by your agent runtime:

  • OpenClaw: Telegram, WhatsApp, Slack, iMessage, Discord, Signal
  • Zo Computer: Telegram, SMS, email
  • Local: CLI (alfred), TUI dashboard (alfred tui), Claude Code

Infra Layer — Runs where you trust

Your data never leaves your control. Run Alfred on:

  • A Mac Mini under your desk
  • A VPS (Hetzner, DigitalOcean, AWS)
  • Personal cloud (Zo Computer)

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.

Install

# Base (semantic layer workers: curator + janitor + distiller)
pip install alfred-vault

# With surveyor (adds ML/vector dependencies)
pip install "alfred-vault[all]"

# With Temporal (kinetic layer)
pip install "alfred-vault[temporal]"

# Everything
pip install "alfred-vault[all]"

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

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

# Daemon management
alfred up                              # start all (background)
alfred up --foreground                 # attached mode (dev/debug)
alfred up --only curator,janitor       # start specific workers
alfred down                            # stop
alfred status                          # overview
alfred tui                             # live dashboard (requires Node.js)

# Semantic layer workers
alfred curator                         # curator daemon (foreground)
alfred janitor scan                    # scan + report
alfred janitor fix                     # scan + AI fix
alfred distiller scan                  # find candidates
alfred distiller run                   # scan + extract
alfred surveyor                        # full pipeline

# Kinetic layer (requires: pip install alfred-vault[temporal])
alfred temporal worker                 # start workflow worker
alfred temporal run <workflow>         # trigger a workflow
alfred temporal schedule register <f>  # register schedules from file
alfred temporal schedule list          # list registered schedules
alfred temporal list                   # list discovered workflows

# 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

# Data ingestion
alfred ingest <file>                   # split bulk export into inbox files
alfred process                         # batch-process inbox

# 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, each worker tool, and temporal. Supports ${VAR} environment variable substitution. See config.yaml.example for all options.

Documentation

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

Getting Started

The Six Layers

Workers

Reference

Use Cases

Task Manager — Drop meeting transcripts into inbox. Alfred extracts tasks, assigns them to people, links them to projects, and maintains status. Query your vault for "all open tasks on Project X" and get live Dataview tables.

CRM — Every conversation creates or updates person and org records. Relationships, interactions, and context accumulate automatically. Your vault becomes a relationship graph you can browse in Obsidian.

Automated Workflows — Schedule Temporal workflows that run your agent on a cadence: daily inbox processing, weekly vault health sweeps, monthly knowledge distillation. Durable execution means nothing gets dropped.

Knowledge Base — The Distiller surfaces assumptions your team is operating on, decisions that were made but never documented, and contradictions between records. The Surveyor finds semantic clusters you never noticed. Together they build an evidence graph that evolves with your work.

Contributing

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

License

MIT

Built by David Szabo-Stuban

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.3.0.tar.gz (365.8 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.3.0-py3-none-any.whl (469.2 kB view details)

Uploaded Python 3

File details

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

File metadata

  • Download URL: alfred_vault-0.3.0.tar.gz
  • Upload date:
  • Size: 365.8 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.3.0.tar.gz
Algorithm Hash digest
SHA256 8e567ff5280d3ba074eecebcd0ed3570f8e6a7e42f026c4dccc74eafbdebcbf2
MD5 3f0a096de1ed42b7f05e1dcceca9f23d
BLAKE2b-256 f02b35b61bdee5968448ae4cc8e9cd366be46a0df1e49241651f367ec2c6163e

See more details on using hashes here.

File details

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

File metadata

  • Download URL: alfred_vault-0.3.0-py3-none-any.whl
  • Upload date:
  • Size: 469.2 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.3.0-py3-none-any.whl
Algorithm Hash digest
SHA256 384dda6c898b230f98e5ae49b925e794b70fef4f206a5084acf8495a03e9b895
MD5 6125e6c18293c1fe6ae2582b29b6c9c0
BLAKE2b-256 b67aae178d16fb42e10e1b23bf9237c8478d1156ff40edd76111acc0b60e9de2

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