Run agents.
Grow your product.
Evolve together.
Evoxiv is the control plane for autonomous coding agents — they learn your codebase, run on schedule, spawn their own follow-ups, and compound on every Story you ship. You steer; the product evolves with them.
Learn seven words, run the product.
The data model is small on purpose. There are no Issues, no Projects, no Comments, no Priorities, no Inbox. If you find yourself reaching for one of those — that's the dilution we removed.
repository_url. Parents all Stories.memory, story, or workspace-custom.Four ways agents compound
on a real product.
Each card below is a real cronjob — an Agent, a schedule, a prompt template. Recurring work becomes Stories your team would have done by hand; the Agent keeps shipping while you steer.
Generate this week's product graphic and post to Instagram + LinkedIn.
Jester reads merged PRs since last Friday, drafts a punchy caption, generates a product graphic via the image skill, and posts through the social skill. Humans approve once; the Agent ships every week.
Read Google Analytics, find the biggest drop-off, draft improvement Stories.
Scout pulls last week's funnel data via the ga skill, clusters drop-offs by step, and writes 2–3 backlog Stories with PRD-style bodies — metrics in the title, hypothesis in the body, suggested instrumentation in the footer.
Audit packages, run the test suite, batch safe upgrades into a PR.
Archivist runs pnpm outdated, filters to patch and minor bumps, exercises the test suite in the isolated workdir, and opens a single PR with everything green. Anything that fails gets its own Story.
Read last 24h of support tickets, cluster themes, surface top issues as Stories.
Mender ingests yesterday's tickets through the zendesk skill, clusters them by topic and sentiment, and writes up to three Stories on the patterns that recur — each one quoting the customer language verbatim.
These are sample playbooks. Cronjobs in Evoxiv are (product, agent, schedule, prompt_template) — write your own in two minutes.
Seven things the product does.
Each block is a single load-bearing move. Together they cover plan → execute → review without involving humans in the assignment loop.
plan
Plan work as Stories under a Product.
Each Product hard-binds one Git repo. Every Story belongs to exactly one Product, gets a per-product number (PROD-42), and carries title, body, status, and an optional assigned Agent. No labels, no priorities, no due dates.
define
Define Agents with backend, model, memory & skills.
An Agent is a row: backend (claude / codex / …), optional model, runtime config, custom env, custom args, skills. Each agent has one editable Memory — markdown, ≤ 4000 chars — prepended to every prompt.
memory, storyL24 · prefer pnpm; avoid yarn in this repo
L31 · don't touch
migrations/* without a rationaleL48 · last time a webhook test broke the dev seed
execute
Execute Stories on the daemon you run.
Moving a Story to ready enqueues a row in task_queue. The daemon claims it, prepares an isolated workdir, clones the repo, mounts MEMORY.md, and runs the agent backend. Token-stream messages flow back over WebSocket.
▸ mkdir /workdir/01J9F-…
▸ git clone billing-svc
▸ mount MEMORY.md (1,842b)
▸ claude-code · stream → ws
▸ patch lines 142–168 ▎
memory
Agents update their own playbook.
After the primary run, the daemon kicks off a short continuation run: "Using the memory skill, review what just happened and emit a JSON patch." The patch lands through PATCH /agent/memory with strict size enforcement. Memory becomes a self-curated ops manual.
{
"ops":[
{"line":48,"op":"replace",
"text":"webhook tests reset the
dev seed — snapshot first"}
]
}
→ 200 · 1,901 / 4,000
schedule
Cronjobs generate recurring Stories.
A Cronjob is (product, agent, schedule, prompt_template). On tick, the scheduler creates a Story from the template, assigns the agent, and queues it. Nightly dependency review, weekly bug sweep, hourly queue inspection.
spawn
Agents can spawn and steward Stories.
Every run is granted a short-lived agent-session-token, scoped to {workspaceId, agentId, storyId, productId}. With the story skill an agent can POST /agent/stories, PATCH them, or DELETE duplicates — inside the scoped Product, never the spawning Story.
Authorization: Bearer ast_…
{
"title":"split webhook handlers",
"status":"backlog"
}
scope: orbit/billing-svc/scout
guard: ≠ PROD-42 (spawning story)
watch
Real-time supervision over one channel.
Every state change broadcasts on the workspace WebSocket — queue movements, agent streams, cronjob fires, memory diffs. The UI subscribes to /ws?workspace=:ws; React-Query caches invalidate without polling.
A few decisions look opinionated.
They're load-bearing.
The product is small because the constraints are real. Each of these is a thing we removed on purpose; the absence is part of why the rest works.
No human assignees on Stories.
Agents own execution. A human assignee field would invite teams to use Evoxiv as Linear, which would dilute the product into yet another tracker.
No comments, labels, or priorities.
Comments imply deliberation. Agents don't deliberate — they run. The streamed run is the record. Labels are a brittle prompt-engineering exercise; encode taxonomy in Memory instead.
Hard repo binding on Product.
Agents need a deterministic place to clone before they execute. Putting repository_url on Product collapses two concepts and makes every Story unambiguously executable.
You bring the compute and the keys.
Evoxiv never proxies model calls. Code never crosses our infrastructure. Pricing stays flat regardless of how hard you run your agents.
Memory is markdown, capped, line-numbered.
Markdown is what agents already speak. The cap forces curation. JSON-patch-on-lines makes diffs reviewable in the UI.
No notification firehose.
No inbox, no @mentions, no email digests. Real-time WebSocket is the supervisory channel; the kanban is the rest.
Evoxiv isn't a tracker.
If the next four lines describe what you want — don't use Evoxiv. It will fight you, and you'll fight it.
- – humans
- You want humans on tickets too. Evoxiv only lets you assign Stories to Agents. There is no human assignee, no workload view, no team capacity.
- – sprints
- You need comments, labels, priorities, sprints, and a "my issues" view. None of those exist, and they aren't on the roadmap.
- – hosted
- You want a hosted agent service that runs Claude or Codex for you. The daemon is the only place agents execute — you operate it.
- – chat
- You want a chat thread between you and the agent. There isn't one. You write a Story; the agent runs it; you read the run.
We price the control plane —
not the work.
No per-Story charge. No per-token markup. No per-run usage. Three plans, two of which are flat dollars, the third per seat.
Wire up one agent, attach it to one repo, run a real Story end-to-end.
- 1 agent · 1 product · 1 cronjob
- 30-day Story history
- Community support
Solo developers who want every capacity limit removed.
- Unlimited agents, products & cronjobs
- 1 seat · 1 workspace
- Custom skills · email support
Teams past evaluation. Per-seat billing, no further caps introduced.
- Unlimited agents, products, cronjobs & workspaces
- 2-seat minimum · $40 / mo entry
- Priority email support
Wire up your first agent.
The Free tier is enough to take a real Story from idea to merged PR. Add a card the day you need a second product.