trmi// docs Discord trmi.dev Download

Build together in trmi

trmi is a desktop app where you, your teammates, and a coding agent work in one live session. You chat, talk over voice, and approve the agent's changes together. Every approved change lands in git.

01Start here

If you're new to trmi, follow these pages in order:

  1. Install and sign in — download the app and connect GitHub.
  2. Quickstart — open a project, ask the agent for a change, and approve it.
  3. Main and lanes — learn where to do each kind of work. This is the most important page in the docs.

02Guides

03Get help

If something doesn't work, see Troubleshooting. For terms you don't recognize, see the Glossary.

community

Join us on Discord

Report a bug, suggest a feature, or ask the team a question. Your feedback shapes what we build next.

Join the Discord

Quickstart

This quickstart shows you how to open a project in trmi, ask the agent for a change, approve it, and open a pull request. It takes about five minutes.

Before you begin

  • Install the trmi desktop app. See Install and sign in.
  • Have a GitHub account. trmi uses it to sign you in and to push your work.
  • Have a project folder or a GitHub repository you want to work on.

Make your first change

  1. Create a project.On the home screen, click Create project. Choose a folder on your computer or a GitHub repository. trmi opens the project in its main session.
  2. Ask the agent.Type what you want in the composer, for example add a dark mode toggle to the settings page, and press ⌘ ↵ (Ctrl ↵ on Windows).
  3. Approve the change.The agent reads your code and proposes each edit as a card. Review the diff on the card, then click approve. trmi commits and pushes the change.
  4. Open a pull request.When you're done, click Create PR below the composer. trmi opens a GitHub pull request with a summary of what changed.
Key point

You don't need to commit, branch, or push yourself. trmi does it for every approved change, and the agent never commits to your own main branch.

What's next

Install and sign in

This page explains how to install the trmi desktop app on macOS or Windows and sign in with GitHub.

System requirements

platformdownload
macOSApple silicon · Intel
Windowsx64 · ARM64

Install the app

  1. Download the installer.Choose the build for your computer from the table above.
  2. Run the installer.On macOS, drag trmi to your Applications folder. On Windows, run the .exe and follow the prompts.
  3. Open trmi.The app checks for updates on launch and installs them for you.

Sign in

  1. Click Continue with GitHub.Your browser opens GitHub's authorization page.
  2. Authorize trmi.trmi asks for access to the repositories you choose, so it can create branches and open pull requests.
  3. Return to the app.You land on the home screen, ready to create or join a project.
Note

trmi never reads your local git credentials or SSH keys. Pushes go through trmi's GitHub App with the access you granted.

What's next

How trmi works

This page describes the six ideas behind trmi. Once you understand them, the rest of the app follows.

01Projects

A project is your code plus everything your team shares about it: members, a task board, sessions, and memory. Each project is backed by one GitHub repository.

02Main

Every project has one main session. It's the project's home room: the board, the member list, and the voice call live there. Changes you approve in main commit to the project's main branch on GitHub — the branch everyone builds on.

03Lanes

A lane is a separate session with its own branch, its own copy of the code, and its own agent. Use a lane for a feature or fix that takes more than a few changes. Lanes run in parallel, and you merge each one back into main with a pull request.

04The room

The room is what you see inside any session: the chat, the people present, the agent's work, and vote cards. Everyone in the room sees the same thing at the same time.

05Hosts

A host is the machine that runs a session's agent and holds its copy of the code. Usually that's the computer of the person who opened the session. You can move a session to a cloud host so it keeps running when your laptop is closed.

06Memory

trmi records what each session decided in a shared project journal. Every new session can read it, so the agent knows what other lanes are doing and what the team already settled. See Project memory.

What's next

Main and lanes

This page explains what the main session is for, when to start a lane instead, and how work moves from a lane back into main.

Key point

Use main to plan, coordinate, and make small changes everyone needs right away. Use a lane for any feature or fix you'd normally put on its own branch.

How work flows

Every lane starts from the latest version of main on GitHub and comes back to main with a pull request.

  1. Create a lane. trmi creates the lane's branch on GitHub from the latest main, so the lane begins with everything already merged.
  2. Work in the lane. Each change you approve commits to the lane's branch. Main and other lanes don't change.
  3. Create PR. trmi opens a pull request from the lane into main. When it merges, every session picks up the change.

What main is for

Main is the project's shared room. Open it when you want to:

  • Plan and discuss. Talk through an idea with your team and the agent before anyone writes code.
  • Manage the board. Add tasks, see who took what, and mark work done.
  • See every lane at a glance. The sidebar lists each lane with who's in it and what it's doing.
  • Make small, shared changes. A config value, a typo, a dependency bump — changes everyone should get right away.
  • Review what landed. See what each lane merged into main.
Caution

Changes approved in main commit straight to main, so every new lane starts with them. Keep main changes small. If a change needs more than a few edits or might break something, start a lane.

What you can do in each

taskmainlane
Chat, voice, and ask the agentyesyes
Manage the project boardyesyes
Commit to main directlyyesno — via PR
Work without affecting othersnoyes
Open a PR into main—yes
Archive when donenoyes

Start a lane

  1. Open the project.In the sidebar, find the project's session list.
  2. Click + lane.Give the lane a short name that says what it's for, like billing-page.
  3. Start working.trmi creates a branch on GitHub and opens the lane. If the project folder is on your computer, your machine hosts the lane's agent in its own copy of the code.
Note

If the project folder isn't on your computer, the lane still exists. Anyone with the folder can host it, or you can run it in the cloud.

Keep a lane up to date

When another lane merges, main moves ahead of your lane. trmi shows a notice at the top of the room. Click Update this session from the project line (the app's name for main) to bring the new changes into your lane. Main updates itself before every agent turn.

Finish a lane

  1. Click Create PR.trmi opens a pull request from the lane into main, with a summary of the changes.
  2. Merge it.Review and merge the pull request on GitHub.
  3. Archive the lane.Archived lanes leave the sidebar but stay searchable.

What's next

Talk to the agent

This page explains how to send messages to people and to the agent, how to change direction while the agent works, and how to stop it.

Message the room or the agent

to send topress
The people in the room↵
The agent⌘ ↵ on macOS · Ctrl ↵ on Windows

When you're alone in a session, every message goes to the agent. You can also start a message with @trmi to address the agent.

Steer a running turn

You don't have to wait for the agent to finish. Send another message to the agent while it works, and it treats your message as a correction to the current task. Anyone in the room can steer.

Attach images

Paste a screenshot into the composer, or drag one onto the chat. trmi accepts PNG, JPEG, WebP, and GIF images.

Set effort

The effort control below the composer sets how hard the agent thinks: auto, low, medium, high, or max. Higher effort is slower and costs more.

Stop the agent

If the session runs on your computer, press Esc with an empty composer while the agent is working. Anyone else in the room can type /stop. Changes the agent already made stay.

Approve changes

The agent proposes every file edit and command as a card. This page explains how cards work, how risk changes them, and how to choose who approves.

How cards work

Each card shows what the agent wants to do — a diff for edits, the exact command for shell actions. Approve it and trmi applies the change, commits it, and pushes it. Deny it and add a reason, and the agent adjusts.

Risk tiers

tierexampleswhat happens
RoutineEdit a file, run testsOne approval clears it.
BreakingDelete files, migrate a database, force-pushThe whole room sees the full risk: what breaks and how to recover.
DecisionTwo valid designsThe agent asks the room to choose.

Choose who approves

Click the approvals control below the composer and choose a mode:

modebehavior
EveryoneEvery change waits for the whole room.
MajorityMore than half the room passes it.
HostThe host's owner decides. If they're away, everyone votes.
AutoNo cards. Changes apply as the agent makes them; the agent's questions still go to the room.
Caution

In Auto, risky changes apply without a vote too. Use it in a lane, not in main.

Choose a model

trmi works with the coding agent you already pay for, or with trmi's own models. The room, votes, and git history work the same either way.

Bring your own subscription

Plug in Claude, Codex, Pi, or another supported agent. It runs with your own account and limits.

Use trmi's models

If you don't have a subscription, pick one of trmi's models. You don't need an API key.

Switch models

Click the model control in the composer and choose a model. The change applies to the current session only.

Who pays

The person who asks the agent pays for that turn. The status bar shows how much each session has spent.

Invite people

This page explains how to add teammates to a project and bring them into a session.

Add a friend

trmi invites go to friends. Open the + face in the room's header, search for a person's GitHub username, and send a friend request. They accept it from their own app.

Invite to a project

  1. Open the invite card.Click the + face in the room's header.
  2. Choose friends.Select one or more friends. Each shows as pending until they accept.
  3. They join.Once they accept, the project appears on their home screen with every session.
Note

Only project members can join a project's sessions. A session id on its own doesn't grant access.

Talking in a full room

With others present, ↵ sends to people and ⌘ ↵ sends to the agent, so you can talk freely without starting agent turns.

Voice and presence

Every project has one ambient voice call, and the room shows who is where.

Voice

You join the project's call automatically when you open a session, with your microphone muted. Unmute from the profile bar at the bottom of the sidebar. The call spans main and every lane, so moving between sessions doesn't drop you.

Presence

Each person gets a seat color. Faces in the sidebar show who's in which session, and the file tree highlights the files each person is working on.

Overlap warnings

trmi warns you when two lanes change the same file or work toward the same goal, before the conflict reaches a pull request.

File overlap

When the agent in your lane edits a file another lane already changed, the card shows which lane touched it and what it changed. You can wait for the other lane, work around it, or continue.

Intent overlap

trmi also compares what each lane is trying to do. If two lanes are solving the same problem, the agent mentions it so you can coordinate in main.

Ship with pull requests

This page explains how trmi uses branches and pull requests so that your work reaches your repository safely.

Session branches

Each lane has its own branch. trmi commits and pushes every approved change, so the branch always matches what the room approved. The branch name appears at the bottom-right of the composer.

Open a pull request

Click Create PR below the composer. trmi opens a pull request from the lane's branch into main, with a description written from the changes. Each session has one open pull request at a time.

Your repository's default branch

trmi's main is a branch trmi keeps on GitHub for the project. The agent never commits to your repository's own default branch. When you're ready, the project owner merges trmi's main into it with a pull request.

Review changes

Click the +/− chip below the composer to see everything this session changed, side by side.

Preview your app

Ask the agent to start your dev server, then open it in trmi's built-in browser or share it with the room.

Open a preview

When a dev server is running, a preview chip with its port appears below the composer. Click it to open the page in the browser beside the room.

Share a public link

Ask the agent to share the preview. trmi creates a public link and posts it to the room so teammates on other machines can open it.

Note

A preview link points at a port on the host. If the dev server stops, the link stops working until it restarts.

Connectors

Connectors give the agent access to other tools — your issue tracker, your database, your cloud provider. They use the Model Context Protocol (MCP).

Add a connector

  1. Open Connectors.Click Connectors in the app.
  2. Install a server.Choose one from the list, or add your own MCP server.
  3. Sign in if asked.Some connectors need your account. Until you sign in, the agent can only ask you to connect.
Note

Connector tool calls follow the same approval rules as any other change.

Project memory

trmi remembers what your team decided, so you don't explain it twice.

The project journal

After each agent turn, trmi records what happened in the project journal. When you start a turn, the agent searches the journal for related work in other lanes and uses it as context.

Memory in the repository

Decisions and known pitfalls are saved in the .termi/ folder and committed with your code, so they travel with the repository.

.termi/
.termi/
  decisions.md   # what the team chose, and why
  gotchas.md     # sharp edges, recorded once

Run in the cloud

A cloud host runs a session on a remote machine, so the agent keeps working when everyone's laptop is closed.

Move a session to the cloud

In the session, type /cloud in the composer. The cloud host takes over the session's agent and its branch, and you can rejoin from any computer. To bring the agent back to your machine, type /cloud stop.

Environment variables

The cloud host receives the project's .env files from the person who moved it, so your app can run there. These files are never committed to git.

When a cloud lane starts

A cloud lane doesn't start a machine until someone sends its first message. When it wakes, it pulls the latest main and reads the recent conversation.

Troubleshooting

This page lists common problems and how to fix them.

The agent doesn't respond

  • Check that you pressed ⌘ ↵. Plain ↵ sends only to people when others are present.
  • Check that the session has a host. A lane with no host has no agent — open it on a computer with the project folder, or run it in the cloud.

A commit isn't on my computer

The commit lives on its author's host until it's pushed. Wait for the push, then update your session from main.

No one can hear me

You join every call muted. Unmute from the profile bar at the bottom of the sidebar.

A preview link doesn't load

The dev server on the host stopped. Ask the agent to restart it and share the preview again.

A connector's tools are missing

The connector is waiting for you to sign in. Open Connectors and click Connect.

Still stuck?

Ask in the trmi Discord. Include your platform, what you tried, and any message trmi showed you.

Glossary

Terms used across trmi and these docs.

termmeaning
ProjectYour repository plus its members, board, sessions, and memory.
MainThe project's home session, and the branch on GitHub it commits to. New lanes start from it.
LaneA parallel session with its own branch, code copy, and agent.
RoomThe live view of a session: chat, people, the agent, and cards.
CardA proposed change waiting for approval.
HostThe machine that runs a session's agent.
SteerA message sent while the agent works, which redirects the current task.
ConnectorAn MCP server that adds tools for the agent.