01 — AI Harness Platform
Seline
A Go platform that runs a personal AI agent for every user inside its own container — booted on signup, kept alive between tasks, and driven over Telegram.
- Go
- Gin
- Docker
- PostgreSQL
- TypeScript
- Next.js
Problem
Most agent products run every user's work inside one shared process. That is fine until an agent needs to hold long-lived state, run shell commands, keep API keys around and stay online between conversations — at which point one user's session is one bad tool call away from touching another's.
Seline takes the opposite position: the unit of isolation is the user, not the request. Each person gets their own runtime, and the platform's job is to schedule, supervise and tear those runtimes down.
Container isolation
Signing up provisions a container that belongs to exactly one user. Conversation history, notes and working files live inside it, and secrets — model provider keys, bot tokens — are encrypted at rest rather than held in a shared store.
Access is gated by an allowlist, so only approved accounts can reach a given agent, and destructive actions are held behind an explicit confirmation.
Agent execution
The agent is reachable over Telegram and behaves like a colleague you delegate to: it searches the web, reads and summarises pages, runs commands and writes notes back to its own filesystem.
Longer jobs are decomposed into sub-agents that run in parallel with their progress visible, and any running task can be paused or killed outright — interrupts are a first-class operation, not a timeout.
Lifecycle & orchestration
Between tasks a container idles cheaply; work is triggered by an inbound message, a scheduled job or a heartbeat check, and how aggressive that polling gets is left to the user.
Memory is treated as a lifecycle problem too — older history is compacted over time so context stays relevant instead of growing without bound.
Technology choices
- Go for the agent runtime and orchestration layer — long-lived processes, cheap concurrency and a small container footprint.
- Gin and PostgreSQL behind the control plane that owns accounts, connectors and container state.
- Docker as the isolation boundary, so the same image runs hosted or self-hosted with no second code path.
- Next.js and TypeScript for the marketing surface and dashboard.
- Bring-your-own model provider — OpenRouter, Cerebras, NVIDIA and Sarvam are wired in as connectors rather than a hard dependency on one vendor.
Tradeoffs
A container per user is more expensive than a shared worker pool, and it makes idle cost the thing you have to engineer around rather than throughput. It buys a security story that is easy to explain and a self-hosting path that is the same code, which for a product whose whole premise is holding your keys and your context was the trade worth making.
Seline is in early access — v0.1, invite-only — and is still changing week to week.