Claude d7cd686341 chore: replace all Alexspayne/Payne references with AlexanderWhitestone
Update GitHub URLs, clone commands, CI badge links, GitHub Pages URL,
agent team name, and hardcoded macOS paths in handoff scripts to reflect
the new GitHub username. Handoff scripts now use relative paths instead
of hardcoded /Users/apayne paths.

https://claude.ai/code/session_01GMiccXbo77GkV3TA69x6KS
2026-02-24 17:05:16 +00:00
2026-02-05 05:17:22 -05:00

Timmy Time — Mission Control

Tests

A local-first, sovereign AI agent system. Talk to Timmy, watch his swarm, gate API access with Bitcoin Lightning — all from a browser, no cloud required.

Live Docs →


What's built

Subsystem Description
Timmy Agent Agno-powered agent (Ollama default, AirLLM optional for 70B/405B)
Mission Control FastAPI + HTMX dashboard — chat, health, swarm, marketplace
Swarm Multi-agent coordinator — spawn agents, post tasks, run Lightning auctions
L402 / Lightning Bitcoin Lightning payment gating for API access
Voice NLU intent detection + TTS (pyttsx3, no cloud)
WebSocket Real-time swarm live feed
Mobile Responsive layout with full iOS safe-area and touch support
CLI timmy, timmy-serve, self-tdd entry points

228 tests, 100% passing.


Prerequisites

Python 3.11+

python3 --version   # must be 3.11+

If not: brew install python@3.11

Ollama — runs the local LLM

brew install ollama
# or download from https://ollama.com

Quickstart

# 1. Clone
git clone https://github.com/AlexanderWhitestone/Timmy-time-dashboard.git
cd Timmy-time-dashboard

# 2. Install
make install
# or manually: python3 -m venv .venv && source .venv/bin/activate && pip install -e ".[dev]"

# 3. Start Ollama (separate terminal)
ollama serve
ollama pull llama3.2

# 4. Launch dashboard
make dev
# opens at http://localhost:8000

Common commands

make test       # run all 228 tests (no Ollama needed)
make test-cov   # test + coverage report
make dev        # start dashboard (http://localhost:8000)
make watch      # self-TDD watchdog (60s poll, alerts on regressions)

Or with the bootstrap script (creates venv, tests, watchdog, server in one shot):

bash activate_self_tdd.sh
bash activate_self_tdd.sh --big-brain   # also installs AirLLM

CLI

timmy chat "What is sovereignty?"
timmy think "Bitcoin and self-custody"
timmy status

timmy-serve start          # L402-gated API server (port 8402)
timmy-serve invoice        # generate a Lightning invoice
timmy-serve status

Mobile access

The dashboard is fully mobile-optimized (iOS safe area, 44px touch targets, 16px input to prevent zoom, momentum scroll).

# Bind to your local network
uvicorn dashboard.app:app --host 0.0.0.0 --port 8000 --reload

# Find your IP
ipconfig getifaddr en0    # Wi-Fi on macOS

Open http://<your-ip>:8000 on your phone (same Wi-Fi network).

Mobile-specific routes:

  • /mobile — single-column optimized layout
  • /mobile-test — 21-scenario HITL test harness (layout, touch, scroll, notch)

AirLLM — big brain backend

Run 70B or 405B models locally with no GPU, using AirLLM's layer-by-layer loading. Apple Silicon uses MLX automatically.

pip install ".[bigbrain]"
pip install "airllm[mlx]"   # Apple Silicon only

timmy chat "Explain self-custody" --backend airllm --model-size 70b

Or set once in .env:

TIMMY_MODEL_BACKEND=auto
AIRLLM_MODEL_SIZE=70b
Flag Parameters RAM needed
8b 8 billion ~16 GB
70b 70 billion ~140 GB
405b 405 billion ~810 GB

Configuration

cp .env.example .env
# edit .env
Variable Default Purpose
OLLAMA_URL http://localhost:11434 Ollama host
OLLAMA_MODEL llama3.2 Model served by Ollama
DEBUG false Enable /docs and /redoc
TIMMY_MODEL_BACKEND ollama ollama | airllm | auto
AIRLLM_MODEL_SIZE 70b 8b | 70b | 405b
L402_HMAC_SECRET (default — change in prod) HMAC signing key for macaroons
L402_MACAROON_SECRET (default — change in prod) Macaroon secret
LIGHTNING_BACKEND mock mock | lnd

Architecture

Browser / Phone
      │ HTTP + HTMX + WebSocket
      ▼
┌─────────────────────────────────────────┐
│             FastAPI (dashboard.app)      │
│  routes: agents, health, swarm,          │
│          marketplace, voice, mobile      │
└───┬─────────────┬──────────┬────────────┘
    │             │          │
    ▼             ▼          ▼
Jinja2        Timmy       Swarm
Templates     Agent       Coordinator
(HTMX)        │           ├─ Registry (SQLite)
              ├─ Ollama   ├─ AuctionManager (L402 bids)
              └─ AirLLM   ├─ SwarmComms (Redis / in-memory)
                          └─ SwarmManager (subprocess)
    │
    ├── Voice NLU + TTS (pyttsx3, local)
    ├── WebSocket live feed (ws_manager)
    ├── L402 Lightning proxy (macaroon + invoice)
    ├── Push notifications (local + macOS native)
    └── Siri Shortcuts API endpoints

Persistence: timmy.db (Agno memory), data/swarm.db (registry + tasks)
External:    Ollama :11434, optional Redis, optional LND gRPC

Project layout

src/
  config.py           # pydantic-settings — all env vars live here
  timmy/              # Core agent (agent.py, backends.py, cli.py, prompts.py)
  dashboard/          # FastAPI app, routes, Jinja2 templates
  swarm/              # Multi-agent: coordinator, registry, bidder, tasks, comms
  timmy_serve/        # L402 proxy, payment handler, TTS, serve CLI
  voice/              # NLU intent detection
  websocket/          # WebSocket connection manager
  notifications/      # Push notification store
  shortcuts/          # Siri Shortcuts endpoints
  self_tdd/           # Continuous test watchdog
tests/                # 228 tests — one file per module, all mocked
static/style.css      # Dark mission-control theme (JetBrains Mono)
docs/                 # GitHub Pages landing page
AGENTS.md             # AI agent development standards ← read this
.env.example          # Environment variable reference
Makefile              # Common dev commands

Troubleshooting

ollama: command not found — install from brew install ollama or ollama.com

connection refused in chat — run ollama serve in a separate terminal

ModuleNotFoundError: No module named 'sqlalchemy' — re-run install to pick up the updated agno[sqlite] dependency: make install

ModuleNotFoundError: No module named 'dashboard' — activate the venv: source .venv/bin/activate && pip install -e ".[dev]"

Health panel shows DOWN — Ollama isn't running; chat still works but returns the offline error message

L402 startup warnings — set L402_HMAC_SECRET and L402_MACAROON_SECRET in .env to silence them (required for production)


For AI agents contributing to this repo

Read AGENTS.md. It covers per-agent assignments, architecture patterns, coding conventions, and the v2→v3 roadmap.


Roadmap

Version Name Status Milestone
1.0.0 Genesis Complete Agno + Ollama + SQLite + Dashboard
2.0.0 Exodus 🔄 In progress Swarm + L402 + Voice + Marketplace
3.0.0 Revelation 📋 Planned Lightning treasury + single .app bundle
Description
[LEGACY - FROZEN] Original Timmy prototype. Superseded by hermes-agent + the-nexus. Do not create new issues or PRs.
Readme MIT 204 MiB
Languages
Python 86.9%
HTML 6.8%
CSS 2.7%
Shell 1.6%
TypeScript 1%
Other 1%