Ada
portfolio.yaml not configured
—
Case study
In brief
Problem
Edge operators want an AI assistant that runs on their own hardware with predictable cost and local state—not another hosted SaaS with opaque billing.
Approach
Built a headless Python agent for Raspberry Pi-class devices: SQLite per profile, allowlisted shell commands, Gemini chat, and token budgets for cost control.
Outcome
One install supports interactive chat, queued background goals, offline RSS and Search Console ingest, and deterministic workflows that draft and publish SEO pages to S3.
Look closer
Stage
Architecture
Primary path: chat → orchestrator → allowlisted tools → SQLite. Cron publish and HUD read paths exist but are secondary on this map.
Architecture
Proof
portfolio.yaml not configured
Proof
$ ada status profile: default db: ~/.ada/profiles/default/state.sqlite worker: running (pid 4821) token_budget: 12000 remaining $ ada chat "summarize today's RSS ingest" [agent] loading tools: rss_fetch, sqlite_query, shell_allowlist [tool] rss_fetch → 14 items from 3 feeds [tool] sqlite_query → INSERT ingest_queue (14 rows) [agent] queued 3 goals for background worker $ ada worker --once [worker] goal: draft_seo_page slug=em-bail-accommodation [tool] search_console → impressions=142, ctr=6.2% [tool] s3_put → s3://site-pages/em-bail-accommodation.html [worker] done — quality gate passed