Vetta

Agents that work while you are away

Long-horizon agents that wake on a schedule, spend a budget, and deliver.

Read the launch post →
agent · nightly-triagewake 41
  • 0141wakecron 0 7 * * 1-5
  • 0142tool_callsearch(errors, 24h)
  • 0143tool_result198 rows
  • 0144text_delta3 new error classes…
  • 0145deliverabletriage-brief.md
  • 0146task_donedone · 4m 12s
spend1.2500 cr / $50.00 cap · month

Paste and ship

Drop this into Cursor, Claude Code, or any agent. It reads the skill manifest and wires up Agents for you.

Agent prompt

Read https://usenaive.ai/skill.md and use the Naïve Agents primitive in my project. Start with: naive agents create --name nightly-triage --model anthropic/claude-sonnet-4-5 --budget-usd 50

What you get

Pinned model, hard capBoth required at create — an uncapped agent is not creatable.
The task board is the queueOne noun, one table. It parks on waiting; you reply and it resumes.
Append-only event traceTail it live, or resume from a seq — a position, never a time.
Spend against the capEvery paid component prints, by component or by task.
Wakes without youA five-field cron, or a signed POST to its own inbound URL.
Delivers files, not just textA workspace file becomes a manifest you fetch by id, with a fresh download url.

One call to Vetta

CLI, SDK, or REST — one bearer token, one credit balance.

POST /v1/agents

Agents

A durable agent per job: it wakes on an alarm, does one turn, commits, and sleeps. Idle costs storage, not compute. Every agent carries its own task board, its own append-only event log and its own hard budget cap in credits — and what it writes to its workspace comes back as a fetchable artifact, not a status update.

Pinned model, hard cap
Both required at create — an uncapped agent is not creatable.
The task board is the queue
One noun, one table. It parks on waiting; you reply and it resumes.
Append-only event trace
Tail it live, or resume from a seq — a position, never a time.
Spend against the cap
Every paid component prints, by component or by task.
Wakes without you
A five-field cron, or a signed POST to its own inbound URL.
Delivers files, not just text
A workspace file becomes a manifest you fetch by id, with a fresh download url.
# 1. Create it. The model must be PINNED, and the cap is not
#    optional — an agent with no budget is not creatable.
$ naive agents create --name nightly-triage \
    --model anthropic/claude-sonnet-4-5 \
    --instructions "Triage the overnight error queue." \
    --budget-usd 50 --max-task-usd 5 --web-search

# 2. Give it work. `run` streams NDJSON; `job` hands back the
#    task record and lets you walk away.
$ naive agents run $AGENT "Summarise the last 24 hours of errors."

# 3. Watch the event trace. --after resumes from a POSITION, so
#    a dropped connection replays instead of losing events.
$ naive agents logs --follow $AGENT

# 4. Read what it cost, per task, against the cap.
$ naive agents spend --by task $AGENT

Start building with Vetta

One API key. One credit balance. Every primitive.