Quickstart
From an empty directory to a running, tool-using agent in a few minutes.
This guide takes you from zero to a streaming, tool-using agent.
1. Create the project
npx arcie@latest init my-agent
cd my-agent
npm install2. Set your Cencori key
export CENCORI_API_KEY=csk_...
export CENCORI_PROJECT_ID=proj_...3. Define the agent
agent/agent.ts declares the model and Cencori configuration:
import { defineAgent } from "arcie";
export default defineAgent({
model: "claude-sonnet-4-5",
name: "my-agent",
cencori: {
project: process.env.CENCORI_PROJECT_ID,
billing: { budget: "50.00/month" },
},
});Write the system prompt in agent/instructions.md:
You are a helpful AI agent built with Zett on Cencori.
Be concise, accurate, and use your tools when appropriate.4. Run the dev server
npm run devarcie dev validates the agent, prints any diagnostics, and starts a local HTTP
server on port 3000. Send it a message — pass stream: true to receive the
event stream as newline-delimited JSON:
curl -N -X POST http://localhost:3000 \
-H "Content-Type: application/json" \
-d '{"message": "Hello!", "stream": true}'You'll see Zett protocol events — session.started,
message.appended deltas, message.completed, and so on.
5. Add a tool
Drop a file in agent/tools/. Its default export is the tool — no registration:
// agent/tools/get_weather.ts
import { defineTool } from "arcie/tools";
import { z } from "zod";
export default defineTool({
description: "Get the current weather for a city.",
inputSchema: z.object({ city: z.string() }),
async execute({ city }) {
return { city, condition: "Sunny", temperatureF: 72 };
},
});Restart arcie dev and the tool count updates. The file name (get_weather)
becomes the tool name. Learn more in Tools.
6. Build for production
npm run buildarcie build compiles the agent into a manifest at .arcie/manifest.json — the
artifact Cencori runs. See the CLI reference.
Where to go next
- Project Layout — every slot, explained.
- Tools and Skills — give the agent capabilities and knowledge.
- Subagents — delegate focused subtasks.
- Running agents —
runAgent/streamAgentin your own code.