A board agents work from
Tasks move from Not Now to Yes, Working, Review and Done. Say yes to a task and its assigned agent starts. Every card shows who worked on it and what it cost.
Work board for agents. A local work board that my agents and I share. I use it from a desktop app, the menu bar and Telegram, and agents use it over MCP.
Tasks move from Not Now to Yes, Working, Review and Done. Say yes to a task and its assigned agent starts. Every card shows who worked on it and what it cost.
A finished task opens on what was built: a summary, screenshots, the changed files and the terminal if you want it. Reply to continue the same session.
A goal broken into tasks that depend on each other. A task starts when the ones before it are done, and the graph shows where the work is stuck.
Jenny is the assistant built into Pulse. To coordinate work I rarely open the board. I tell Jenny what I need, and Jenny reads and changes the board for me.
The desktop app, the orb, Telegram and every agent talk to the same local server. Nothing else writes to the database, so a rule holds no matter who makes the change.
The app, the command line and the agents all go through the server. It enforces dependencies, review steps and schedules in one place.
A separate daemon starts and supervises the agent sessions. Closing the desktop app does not stop a run.
The server adds a credential at the moment a call leaves the machine. No agent and no script ever holds one.
Pulse does not give agents one tool per action. Over MCP an agent sees two tools, search and execute. Search returns what the board can do as typed functions. Execute takes one small TypeScript module that calls them. Jenny works through the same two tools.
import type { PulseContext } from 'pulse:runtime';
export default async function run(
input: { task: string; url: string },
ctx: PulseContext,
) {
await ctx.pulse.tasks.move({ task: input.task, column: 'review' });
await ctx.pulse.tasks.linksAdd({
task: input.task,
kind: 'github',
label: 'Implementation PR',
url: input.url,
});
return { task: input.task, column: 'review' };
}Who uses Pulse and which outside systems it talks to. No technology yet.