Keepion — A legible, memory-first AI agent platform. Built from scratch with clear boundaries.
Find a file
2026-08-13 21:13:12 -04:00
.forgejo/workflows chore: zero Python-era code, swap CI + gitignore for Go 2026-08-13 19:05:36 -04:00
config feat: scaffold Phase 0 — config skeleton, project structure, AGENTS.md 2026-07-05 12:45:19 -04:00
docs docs: lock storage decision to PostgreSQL + pgvector from Day 1 2026-08-13 21:13:12 -04:00
.gitignore chore: zero Python-era code, swap CI + gitignore for Go 2026-08-13 19:05:36 -04:00
AGENTS.md Update AGENTS.md 2026-08-13 17:42:02 -04:00
LICENSE Add license file 2026-07-06 20:34:12 +00:00
README.md docs: rewrite README for Go-native rebuild 2026-08-13 18:02:52 -04:00

Keepion

A legible, memory-first AI agent platform — built from the ground up in Go.

Keepion ("keep" + "-ion") is a from-scratch AI agent platform designed around a single principle: every boundary should be visible and trustable. Memory isn't tacked on. Config isn't monolithic. The agent loop isn't hidden behind a framework.

Two goals, equally weighted:

  1. Learn by building — trust it because we know it from the ground up.
  2. End up with a daily-driver — build it so we can grow with it.

Status

🔨 Phase 0 (v0.0.x) — Infrastructure. The project was rebooted from a Python prototype to a Go-native build on 2026-08-13. Docs are being written now; code starts fresh at v0.0.1 once the plan is complete.

Why Go?

  • Dep-minimality — Go's stdlib ships a web server, JSON, testing, and concurrency: a production API server with almost no third-party dependencies.
  • Agent ergonomics — gofmt-enforced uniformity, fast compiles, and the compiler as a guardrail make Go exceptionally well-suited for AI-assisted development.
  • Models as services — inference is consumed over HTTP (Fireworks interim → Ollama/llama.cpp on Terra after GPU). The runner's language never leaks in.

Stack

  • Language: Go — module git.flora.family/christopher/keepion
  • API: stdlib net/http (or chi — decided in the docs phase)
  • Config: layered YAML → Go structs
  • Providers: OpenAI-compatible HTTP adapters (OCG, OpenRouter, Gemini)
  • Memory: from-scratch, multi-layer (see docs/memory-architecture.md)
  • Storage: SQLite + FTS5 vs pgvector — open decision (see docs)
  • Models: sidecar services — Ollama/llama.cpp on Terra, Fireworks interim

Versioning

Phase = minor, task = patch, all under v0.x until publish.

v0.x is Go's explicit pre-release zone — breaking changes are freely allowed, and no /v2 module-path churn happens until 1.0+.

Phase Version Name
0 v0.0.x Infrastructure
1 v0.1.x Agent
2 v0.2.x Transcript
3 v0.3.x Memory (facts + insights)
4 v0.4.x Summaries
5 v0.5.x Interface (web frontend)
6 v0.6.x Identity
v1.0.0 Publish-ready (major bump)

Each completed task bumps the patch. Phase 0 starts at v0.0.1 (not v0.0.0). The binary reports its own version via -ldflags "-X main.version=$(git describe)".

Getting Started

Phase 0 — to be written once the dev environment is stood up (Go toolchain installed, module initialized, CI running).

Documentation

License

MIT