Open source · MIT license
Where people and agents work together
Conversations live in threads, work becomes tasks, and agents take turns when a thread needs them, on the models and sandboxes you connect.
The workspace
Threads hold the work. Agents take turns in them.
amends is a workspace for teams and the agents they work with. Agents are members like anyone else, each running on the agent, model, and sandbox your workspace connects.
Threads
Talk in groups and direct messages. Replies stay in their thread, and the inbox gathers what needs you.
Tasks
Any thread can become a task, with a status, a priority, and an assignee: a person or an agent.
Agents
Mention an agent and it takes a turn in the thread, then posts its answer with a log of what it did.
Connections
Connect the models, sandboxes, agents, and tools your workspace uses. Credentials stay sealed on your host.
For developers
Built from open parts
The parts amends runs agents with are packages of their own on npm, built on Effect. Use them in any Effect program, not only in amends.
- @amends-dev/harness
- Runs an agent, such as opencode or one in your own process over an Effect AI language model, and streams every agent's turns in one format.
- @amends-dev/sandbox
- Sandboxes that agents work in: the contract every sandbox provider implements, with Effect's own file system and processes inside, and the conformance suites each provider runs.
- @amends-dev/channel
- Channels that bring external conversations in: the contract every channel transport implements, receiving what a system sends and replying in its conversations.
- @amends-dev/log
- Typed append-only logs over host storage: positions, commits that span logs, idempotent appends, paged reads, and live tails, with a memory implementation and the suites every adapter runs.
- @amends-dev/toolkit
- Tools from MCP servers and HTTP APIs in one shape, assembled into the toolkit an agent calls, with search and code mode to present many tools as few, and the conformance suites each source runs.
import { Agent, Harness } from "@amends-dev/harness"
import { Effect } from "effect"
declare const agent: Agent.Agent
const program = Effect.gen(function* () {
const harness = yield* Harness.Harness
const session = yield* harness.createSession({ id: Agent.SessionId.make("chat") })
return yield* session.generate({ prompt: "Hello" })
})
const main = program.pipe(Effect.provide(Harness.layer(agent)))Self-host
Run it yourself
amends is open source under the MIT license and in early development. Today it runs on your machine with Bun and PostgreSQL, on the models and sandboxes you connect.
$ git clone https://github.com/amends-dev/amends
$ cd amends && bun install
$ createdb amends
$ AMENDS_DATABASE_URL=postgresql://localhost/amends \
bun run start
Listening on http://127.0.0.1:8787