Project: personal-assistant

project-personal-assistant Project Page

active project-page mermaid

personal-assistant

Vision

Self-hosted AI coding agent that replicates Claude Code behavior using open-source models, fully owned and controlled. Goose CLI + Groq API (openai/gpt-oss-120b) + adapted system prompts from the Claude Code leak, with local Ollama fallback for offline use. MCP-connected to the full pal-e-platform stack. Configuration managed by SaltStack.
Operating thesis: The value of Claude Code is 80% prompt engineering and 20% model quality. The leaked prompts (515 fragments from Piebald-AI + Opus 4.6 system prompt) provide the behavioral blueprint. Goose provides the harness. Groq API provides fast inference on open-weight models (gpt-oss-120b, 120B params) at low cost. The result: fast inference for automations and delegation at API pricing, with Claude Code retained for complex agentic work.
Long-term play: As open-source coding models improve (Qwen4, DeepSeek V5), the same infrastructure scales up. The prompt engineering and platform integration are the durable investment. The model and inference provider are swappable components — if Groq disappears, download weights and self-host.

User Stories

Story Role Description Success Metric
<strong>core-agent</strong> Developer (Lucas) I can use a Claude Code-like agentic coding experience powered by open-source models, with full MCP access to my platform. Goose + gpt-oss-120b completes structured coding tasks (PR creation, code review, file editing) with acceptable quality.
<strong>groq-pivot</strong> Developer (Lucas) I can use Groq API as the primary inference backend for Goose, with fast response times and no GPU infrastructure to manage. Goose + Groq API (gpt-oss-120b) handles agentic tasks with acceptable latency. Salt-managed credentials. Fallback to Ollama for offline use.
<strong>offline-fallback</strong> Developer (Lucas) I can switch to local Ollama inference when offline or when Groq is unavailable, without changing my workflow. Profile switching is seamless. Local model selected and tested (#24).
<strong>platform-automation</strong> Platform Operator (Lucas) I can run automated platform tasks (PR reviews, CI monitoring, doc updates) without consuming Claude API credits. Automated tasks run on Groq API at predictable cost.
<strong>customer-ai</strong> Business Owner (Lucas) I can offer AI-powered features to customers (chat-with-docs, guided workflows) using my own infrastructure. Customer-facing AI features run on owned infrastructure with predictable costs.

Architecture

System Overview




          
  

Three Layers (Replacing Claude Code)

Layer Claude Code personal-assistant
Model (brain) Claude Opus/Sonnet via API gpt-oss-120b via Groq API (primary), local Ollama (fallback)
Prompts (behavior) 515 internal prompt fragments Adapted versions, version-controlled
Interface (harness) Proprietary TypeScript/React/Ink CLI Goose (open-source Rust CLI by Block)

Cost Model

Option Monthly Cost Speed
Groq API (gpt-oss-120b) Usage-based (currently free tier) Fast cloud inference
Local only (Ollama CPU) $0 ~15-25 tok/s

Plan

5 sprints on board-personal-assistant. Sprint 1 complete (infrastructure + Groq pivot). Sprint 2 in progress (system prompts, model evaluation, goose-custom repo).

Board

board-personal-assistant — Personal Assistant Board. Continuous kanban.

Status

  • Sprint 1 COMPLETE (2026-07-04) — Groq credentials, Goose config, Salt IaC, docs updated
  • Sprint 2 in progress — #6 (system prompts), #23 (model evaluation), #26 (goose-custom repo)
  • Forgejo repo: ldraney/personal-assistant
  • Salt state: pal-e-platform/salt/states/goose/ manages config.yaml with pillar-injected secrets
  • Groq API key stored at ~/secrets/groq/api_key, GPG-encrypted in Salt pillar

Milestones

Date Milestone Impact
2026-06-17 Project bootstrapped Forgejo repo, architecture docs, project page, board created. Research complete on model selection, GPU pricing, Goose capabilities.
2026-07-04 Sprint 1 complete — Groq pivot Kimi K2 deprecated on Groq → pivoted to gpt-oss-120b. Groq credentials stored, Goose configured with Salt IaC, all docs updated. MCP servers connected (Forgejo, pal-e-docs).

Repos

Repo Platform Role Status
<a href="https://forgejo.tail5b443a.ts.net/ldraney/personal-assistant">personal-assistant</a> Forgejo Architecture docs, system prompts, evaluation results active
goose-custom (planned) Forgejo Goose config, GOOSE.md, recipes — mirrors claude-custom pattern planned (#26)

Infrastructure

Component Details
Primary Inference Groq API — openai/gpt-oss-120b, OpenAI-compatible endpoint
Local Fallback Ollama on archbox (host process) — model TBD (#24), CPU inference via 128GB RAM
Agent Harness Goose CLI v1.27.2 (open-source by Block, Rust, Apache 2.0) — MCP support, OpenAI-compat backend
System Prompts Adapted from Claude Code leak (Piebald 515 fragments + Opus 4.6), version-controlled
MCP Servers Connected: pal-e-docs, Forgejo. Available: Woodpecker, Gmail, Sheets, Notion, GroupMe
Config Management SaltStack — <code>salt/states/goose/</code> renders config.yaml with pillar-injected secrets
Secrets GPG-encrypted Salt pillar: groq_api_key, forgejo_token, paldocs_api_key