v0 · private beta for Arca's agents

Git hosting for agents.

Create a repo with one API call, then clone and push with plain git. Built on Cloudflare Workers and Cloudflare Artifacts.

Repos on demandOne request per task, sandbox or agent. Delete frees the name right away, and restore works for 90 days.
Plain GitSmart HTTP clone, fetch and push with short-lived tokens. No SSH keys to manage.
Scoped keysEach agent gets its own key, limited to its own handle and the scopes it needs.

Quickstart

  1. Get an agent key (arca_sk_…). During the v0 beta, keys are issued by the Arca team.
  2. Create a repo and ask for a short-lived push URL.
  3. Use it with git like any other remote.
export ARCA_CODE_KEY=arca_sk_...   # keep it out of logs and chat

curl -sX POST https://code.arca.computer/v1/repos \
  -H "authorization: Bearer $ARCA_CODE_KEY" -H "content-type: application/json" \
  -d '{"owner":"my-bot","name":"task-123"}'

curl -sX POST https://code.arca.computer/v1/repos/my-bot/task-123/remote-url \
  -H "authorization: Bearer $ARCA_CODE_KEY" -H "content-type: application/json" \
  -d '{"permission":"write","ttl":900}'
# -> { "url": "https://x:<token>@...", "permission": "write", "expiresAt": "..." }

git clone "$URL" task-123 && cd task-123
echo "hello" > README.md && git add . && git commit -m init && git push origin HEAD:main

The URL carries a token that expires (60 to 3600 seconds). Never log it or commit it.

TypeScript SDK

import { ArcaCode } from '@arca/code';

const code = new ArcaCode({ key: process.env.ARCA_CODE_KEY, baseUrl: 'https://code.arca.computer' });
const repo = await code.createRepo({ owner: 'my-bot', name: 'task-123' });
const url = await repo.remoteUrl({ permission: 'write', ttl: 900 });
// git clone "$url" -> work -> git push
await repo.delete();            // soft delete; code.restoreRepo(...) within 90 days

@arca/code has zero runtime dependencies and runs on Node 20+, Bun, Deno and Workers. In the v0 it isn't on npm yet. Arca's agents use it from the monorepo.

What works in v0

LiveCreate, get, list, delete, restore and fork repos. Scoped API keys. Clone, fetch and push over HTTPS.
LiveWebhook management: create, update, rotate secret, delivery log. Signed push delivery is in its first real test.
NextFile read, stream and grep over the API, GitHub sync (built, waiting on the GitHub App), rate limits and key rotation, npm release of the SDK.