TOMRADE

一起,向前 FORWARD, TOGETHER

Tasks, notes and agents, in one folder you own.

Tomrade is a local-first workspace for solo makers and tiny teams. Run a codebase, your week, a journal or a shelf of docs from the same app. Say one sentence and the assistant drafts the whole backlog; hand a ticket to Claude Code or Codex; undo any agent run in one click.

Tomrade's board: a sidebar of views and workstreams, issue cards in Backlog and To Do columns, and the assistant panel on the right.

Your agents work at 3 a.m. They read your tickets, edit your notes, and now and then rewrite everything you own. Tomrade is the workspace built for them, with an undo button built for you.

One workspace

Not just for code.

Every project is a board plus a folder of files. Connect it to a repository, or fill it with nothing but your week.

Ship software

Talk a feature into tickets sized for one pull request, then let Claude Code or Codex build each one on its own branch.

  • TOM-42Autosave draftsIn review
  • TOM-43Offer a restore on reopenIn progress

Run your week

Errands, chores and plans on a board or a table. Brain-dump to the assistant and it sorts the mess into tasks.

  • Renew the passport
  • Book the dentist
  • Plan Saturday's hike

Keep a journal

Today's note opens a dated page in your Journal folder. Tag the days and link them with [[wiki links]].

Journal/2026-10-10.md

2026-10-10

Long walk by the river. Finally fixed the #bike.

Write docs

Markdown with a live preview, backlinks and full-text search. Every save is versioned and can sync to a GitHub repo.

  • Onboarding.md3 backlinks
  • Pricing.md
  • Roadmap.md

One sentence → a backlog

From a sentence to a pull request.

  1. 01Talk

    Describe what you want in plain words. The agent asks what it needs to know and shapes the requirement with you.

    People lose their drafts when the tab crashes.

    Should drafts follow them to other devices, or is recovering on this one enough?

    This device is enough for now.

  2. 02Plan

    It drafts epics and features sized for one PR, checks them against what already exists, and points out what is missing.

    EpicDraft recovery

    Autosave drafts locally1 PR

    Offer a restore on reopen1 PR

    Clear the draft after submit1 PR

    Missing: two tabs editing the same draft?

  3. 03Apply

    The whole tree lands in one run. There is no approval queue: it applies at once, and one click reverts the entire run.

    Applied 1 epic, 3 featuresUndo run

    Approval queue: none. Vibes: immaculate.

  4. 04Build

    Press Start on a ticket and your own Claude Code or Codex picks it up on its own branch, reading and updating the ticket as it works.

    TOM-43Autosave drafts locallyStart

    Claude Code · tom-43-autosave-drafts

    TOM-43 → In progress

Undo, not approve

Approval queues? In this economy?

No approval queue. Just undo.

Agents write straight to the backlog, so nothing waits on you. Every run is grouped and attributed, and when one gets creative, a single click puts all of it back.

History shows who changed what, run by run.

Files & notes

A notebook that lives next to your board.

Each project carries a folder of files: Markdown, HTML, images, anything. Write in an editor that previews as you type, link notes to each other, and attach them to tickets as deliverables.

  • [[Wiki links]] and backlinks. Rename a note and the links follow.
  • #tags and full-text search across every file.
  • Today's note: one click to a dated page in your journal.
  • Read, Edit or Split, with the preview scrolling in step.
  • Every save is versioned. Sync to a GitHub repo of your choice.
  • Attach files to tickets, and let agents search your notes.

Principles

Built so agents can move fast without stepping on you.

Your folder is the truth

Each project is a folder of plain text you can read, diff and back up. The database is only a cache.

~/Tomrade/projects/my-app/.tomrade/
├── project.json
├── state/
│   └── items.jsonl
├── log/
│   └── macbook.jsonl
└── README.md
Delete the cache. It comes back. We'll wait.

Human work comes first

Every AI write is attributed and versioned. Fields you lock stay locked, and a write based on a stale read is refused, whoever sends it.

PriorityHighlocked by you

update_item refused: field is locked

stale read: v12, now v13

One set of tools, every surface

The in-app assistant and the agents in your editor call the same tools. Add one once and it shows up everywhere.

Assistanttomrade.*Your editor

Bring your own model

DeepSeek, Anthropic, any OpenAI-compatible endpoint or a local model. Or let your own Claude Code or Codex CLI conduct.

  • DeepSeek
  • Anthropic
  • OpenAI-compatible
  • Local models
  • Claude Code
  • Codex

Boards, tables and graphs

Workstreams, custom fields and saved views. Keyboard-first, with a palette for everything.

⌘KSwitch view…

  • Board
  • Table
  • Dependency graph

Agents

Plug in the agents you already use

Tomrade runs an MCP server on your machine. Point Claude Code, Codex or Cursor at it and they can list, read, create and update tickets, and read and write your files, under the same rules as everyone else.

.mcp.json
{
  "mcpServers": {
    "tomrade": {
      "type": "http",
      "url": "http://127.0.0.1:19090/mcp"
    }
  }
}

It listens on 127.0.0.1 only. Nothing is exposed to the network.

Tools they get

  • tomrade.list_items
  • tomrade.get_item
  • tomrade.create_item
  • tomrade.update_item
  • tomrade.change_status
  • tomrade.extract_tickets
  • tomrade.gap_analysis
An issue's detail pane: a Start button, a Lock button, status, priority, the issues that block it, its version and who wrote last.
Every ticket shows its version and who wrote last. Start hands it to your coding agent.

Plugins

Everything is a plugin, including yours

The database, the tool registry, the MCP server and the assistant are each a plugin you can swap out. Write your own against the Apache-2.0 SDK and ship it under any license, or ask the agent to write one for you in Plugin Studio.

src/index.ts
import { definePlugin, defineTool } from "@tomradex/plugin-sdk";
import { z } from "zod";

export default definePlugin({
  inject: ["items", "tools"],
  async apply(ctx) {
    await ctx.tools.register(defineTool({
      name: "stale_list_items",
      title: "List stale items",
      description: "Open issues untouched for two weeks.",
      input: z.object({ projectId: z.string() }),
      execute: async ({ projectId }) =>
        (await ctx.items.list({ projectId }))
          .filter((i) => Date.now() - i.updatedAt > 14 * 86_400_000)
    }));
  }
});

Register a tool once. It appears in the assistant and on the MCP server.

The Settings dialog listing Tomrade's modules and the plugin that provides each one.

Desktop pet

Your agents have a supervisor now. It's a cat.

The pet lives on your desktop and mirrors what your agent is doing, so one glance tells you whether it needs you. No tab-switching, no notification spam.

  1. idle

    Off the clock

    Nothing is running, so neither is the cat. Respect the nap.

  2. thinking

    Thinking…

    You asked. The agent hasn't said a word yet, and the cat is processing too.

  3. working

    Galaxy-brain mode

    The first output is out. From here until the turn ends, the cat is locked in.

  4. waiting

    Look in my eyes

    The agent hit a question only you can answer. The cat will keep staring until you do.

  5. done

    Insufferable

    The run finished. The cat is smug for exactly three seconds, then goes back to sleep.

  6. error

    Emotional damage

    Something broke. The cat cries for three seconds so you don't have to. Then you ⌘Z.

Not a cat person? Bring your own pet.

In Settings › Pet, give each mood its own picture: an animated GIF or WebP, or a PNG or JPEG, up to 8 MB each. Moods you skip keep the cat. Your pets stay on your machine, and the built-in cat is always one click away.

License

Free to use. Source available.

Tomrade is published under the Business Source License 1.1.

  • Read it, change it and run it, at home or at work.
  • Each version becomes Apache-2.0 two years after release.
  • Plugins are yours. The SDK is Apache-2.0, so ship them under any license, commercial ones included.
  • The one thing you can't do: sell Tomrade, or a copy of it, as a competing product.

FAQ

Questions

Is Tomrade only for programmers?

No. The board, the assistant and Files work for any project: a household, a trip, a thesis, a journal. Coding agents join in when a project has a repository and stay out of the way when it doesn't.

Is Tomrade open source?

It is source-available under the Business Source License 1.1, which is not an OSI open-source license. You can read, change and use the code, including at work, and each version converts to Apache-2.0 two years after it is released. The plugin SDK and its tooling are Apache-2.0 today.

Where is my data stored?

Your projects live on your machine, one plain folder each. Your account keeps only your preferences and the list of your projects. Project content leaves your machine only if you connect a model provider or a git remote.

Do I need an account?

Yes. Your account keeps your preferences and the list of your projects in sync. It never holds project content: issues, files and code stay in your project folders.

Which AI models does it work with?

The built-in assistant works with DeepSeek, Anthropic, any OpenAI-compatible endpoint and local models. Claude Code and Codex can also drive Tomrade directly, using your own CLI login.

Can I turn the cat off?

Yes, in Settings. You can also swap it for a pet of your own, or unload the pet plugin entirely. The cat will not take it personally. Probably.

Which platforms does it run on?

macOS (Apple silicon and Intel), Windows and Linux (AppImage).

Which languages does the interface support?

English and Simplified Chinese.

Ship more. Approve less.

Free to use and source available. Your projects stay in your own folders.