Define the agent's workspace
Set the boundaries for files, tools, and permissions so the agent knows where it works, what it can do, and where its output belongs.
Build worlds where agents live, work, and collaborate.
Downcity is a set of open-source kits for running agents and turning them into products. Agent Harness provides the runtime; City, Federation, SDKs, and UI kits make products easy to package, operate, and scale.
01import { Agent, Workspace } from "@downcity/agent";02import { createOpenAI } from "@ai-sdk/openai";03 04const agent = new Agent({05 id: "assistant",06 workspace: new Workspace({ path: process.cwd() }),07 model: createOpenAI().responses("gpt-5"),08});09 10const session = await agent.sessions.create();11const turn = await session.prompt({ query: "Start working" });12const result = await turn.finished;13console.log(result.text);14 15await agent.dispose();Architecture
A creator organizes agent roles, tools, skills, and product interfaces into a City. The City runs on the user's computer or server and stores sessions, tasks, and work artifacts. When an agent needs models, accounts, usage, or other shared services, it connects to Federation.
Features
Compose the harness and productization kits around your use case: give agents a reliable runtime, then add the product boundary, shared services, and interfaces your users need.
Set the boundaries for files, tools, and permissions so the agent knows where it works, what it can do, and where its output belongs.
Sessions preserve conversations, tool calls, task state, and results so agents can continue from existing context.
Use tools, skills, and plugins so agents can search, write, execute, record, and connect to the services a product needs.
Use tasks, memory, and schedules so agents can follow up, check progress, and complete long-running work beyond a single conversation.
Configure agents with different roles inside one City. They share a product boundary and services while handling creation, analysis, review, or operations.
Interact through CLI, Console, SDKs, or product interfaces while inspecting status, approving actions, and managing the runtime.
Product shapes
Organize agents, capabilities, and product interfaces around a clear field of work, turning each City into a product that keeps running.
Agents take on development, review, testing, and release roles to move software from idea to delivery.
Agents continuously gather information, analyze material, organize knowledge, and turn research into useful outcomes.
Agents handle monitoring, support, coordination, and recurring work to keep teams running smoothly.
Agents are organized around a person's files, tools, and daily workflows while the user controls data and runtime.
Install Downcity, create an agent product, and start its runtime.
npm install -g downcity
downcity agent create ./my-city
downcity federation use
downcity start
downcity agent start