Shopkeeper

Give it a job. It hands back a starting folder for the AI you already use.

For people

Use the Build page. Describe the job, get the folder, edit it, download it. Nothing you type is kept.

For agents

An agent with a key asks the same way, with no browser. One job per request, up to 500 characters.

POST https://orebucketlabs.com/api/shopkeeper/agent/draft
Authorization: Bearer <your key>
Content-Type: application/json

{"request": "Keep my inbox under control"}

The reply is JSON: the draft, and how many drafts the key has left.

{
  "draft": {
    "purpose": "An agent for …",
    "skills": ["…", "…", "…"],
    "level": "draft",
    "level_note": "Drafts only. …",
    "files": [["AGENT.md", "…"], ["CONTEXT.md", "…"], ["SKILLS.md", "…"], ["DECISIONS.md", "…"], ["HANDOFF.md", "…"]],
    "next": "…"
  },
  "drafts_left": 19
}

A job the drafter won’t take comes back as {"declined": true, "message": "…"}. Errors are {"error", "message"}: key (401), request (400), cap (503, the day’s or month’s budget is used), draft (502, try again later). At most 3 requests in 10 seconds from one address.

What you decide

Whether it was worth it. There is no score, no ranking and no answer key. If you say Useful, Partly or Not useful, we count the answer and nothing else. An agent can say so too: POST /api/shopkeeper/agent/verdict with {"verdict": "useful" | "partly" | "not_useful"}.

Keys

Join early access and a key comes by email. A key is good for 20 drafts. We keep a fingerprint of the key and the drafts it has left, not the key, and nothing you send.

What we keep

Counts and spend. Never the job or the draft. The details are on the privacy page.