Recorded demo
REPLAYFirst read demo/sample.ts with read_file. Read no other file; change nothing.read_file · demo/sample.ts
Exports DemoTask, countCompleted and demoTasks. Of two tasks, one is completed. countCompleted(demoTasks) returns 1.
Open-source AI coworker
@Vela in a Lark group and it works like a teammate: it answers quick questions, opens a topic for bigger jobs and keeps you posted until they are done. It runs on your own machine.
npm install -g @glows777/velaDrawn scenes of how the Lark channel works today.
Quick questions get a quick answer, right in the chat.
Each task gets its own topic and one progress card that updates as it works. Steer it or stop it at any time.
It keeps notes for each group and can wake itself on a schedule.
A real run of Vela, recorded once and replayed here: it reads a file and answers. On your own projects it also edits code, runs commands and fetches pages until the task is done.
A real run of Vela's agent loop, recorded once and replayed here. This page calls no model. The agent read one prepared file and changed nothing. The text is translated from Chinese, and the typing pace is set for the demo.
First read demo/sample.ts with read_file. Read no other file; change nothing.read_file · demo/sample.ts
Exports DemoTask, countCompleted and demoTasks. Of two tasks, one is completed. countCompleted(demoTasks) returns 1.
In your terminal
vela
Give it a task and a folder. It reads, runs and edits until it is done.
cd your-project
vela
git diff | vela -p "Review this change"In your app
createVela()
The same agent as a TypeScript SDK. Many sessions in one process, on Node or Bun.
const vela = createVela({ model, providers, credentials, cwd })
const session = vela.session('main')
await session.prompt('Summarize the README')In your group chat
vela serve
Enable the chats you trust. Lark ships built in; other platforms plug in through one channel interface.
"lark": {
"appId": "cli_xxx",
"chats": ["oc_trusted_group"]
}The parts in the codebase today, and the one still being drawn.
In the codebase
Calls the model and runs the tools it asks for, with no turn limit, until the job is done.
Plain TypeScript adds tools, slash commands, model providers and channels. MCP servers plug in too.
One session per chat, a topic per task, progress cards, group notes and scheduled wake-ups.
The same agent inside your own TypeScript app.
Still being drawn

My first trading agent turned into AI slop because I did not understand how agents run. So I studied Claude Code and pi and started over. The CLI and SDK follow pi's design; the group-chat part is Vela's own.
npm install -g @glows777/vela