What Thalia does

Everything between the request and the pull request.

Thalia is a native Mac app for agentic coding with Meta’s Muse Code CLI. Open a project, plan the work, watch it happen, review the diff and ship the branch.

The capabilities below are in the current development build. Thalia is coming soon; launch details may change.

Free to startApple SiliconmacOS 26 or 27Bring your own Muse access

Thalia mid-turn for the sample project atlas-web: the turn’s steps, Muse asking to run npx vitest run src/lib/formatDate.test.ts with Deny, Allow once and Allow for this session, a follow-up instruction in the composer, and the inspector with the plan, goal, preview, changes and checks.

The real Thalia app, running a sample workspace.

01

Projects and conversations

Where the work lives: one project per folder, one chat per task, and one place that shows what needs you.

Close-up of Thalia’s Home screen: a command to approve, a failed check, work ready for review, and two running tasks.
Home: approvals, failed checks, work ready for review and running tasks.
Close-up of Thalia’s command bar listing chats, the screens with ⌘1 to ⌘7, and the Guide.
The command bar, ⌘K.

Give every task its own conversation.

Open a folder on your Mac as a project and start a chat for each feature or fix. Name and pin chats, filter the sidebar, and find your drafts and history where you left them after a relaunch.

Jump anywhere with ⌘K.

The command bar runs any command and finds settings, guide topics and past messages.

Home shows what needs you.

Approvals waiting on you, plans ready to review, failed checks and running work appear in one place. Each item opens the chat it came from.

Start from a suggestion.

An empty chat offers starter tasks. They fill the composer and wait for you to send.

Make each project easy to spot.

Give a project an emoji and a colour.

02

Plan, then build

Think before touching files.

Plan mode in Thalia: the request, a five-step plan for an offline forecast cache, and the Plan ready bar with Discard, Request Changes and Approve and Build.
A plan waiting for approval, with the request above it.

Plan before a file changes.

Switch the composer to Plan and Muse works out the approach without editing your project. Read the plan, then approve it to build, ask for changes, or discard it.

An approved plan waits for you.

If an approved plan can’t start (the connection drops, or the folder moved), it stays in the chat with Retry and Inspect.

Keep the work together.

Open a task with /task and its plan, changes, checks and checkpoints collect in the inspector. Set a goal, and mark it accepted when the work is done.

Choose the model and effort.

Set the model and reasoning effort per chat or per project, from the models your Muse account offers.

Models from your Muse account

03

Live work you can steer

You stay in the loop while Muse works.

Close-up: “Muse wants to run a command” with npx vitest run src/lib/formatDate.test.ts, and Deny, Allow once and Allow for this session.
An approval shows the whole command.
Close-up of Thalia’s Agents screen: a parent turn with two helpers and a live feed of their steps.
Helper agents on the Agents screen.

See each step as it runs.

A turn lists its steps while it works. Expand any step for detail, or collapse the whole turn when it’s done.

Approve commands with the full picture.

When Muse asks to run something, Thalia shows the whole command, with hidden characters made visible, before Allow is available. Decide in the chat, from Home, or with ⇧⌘A and ⇧⌘D.

Steer, stop or answer mid-turn.

Send a new instruction while Muse is working, stop the turn with ⇧⌘., or choose an answer when Muse asks you a question. Edit and resend an earlier request, or retry a reply.

See the helper agents Muse starts.

When Muse hands part of a task to helper agents, the Agents screen shows each one: what it’s doing, what it returned, and the worktree it works in. You can message a helper or stop it.

When Muse delegates

Coordinate sessions in one project.

Sessions shows other Muse sessions working in the same project, a shared task board, and messages between sessions. Claims on the board are advisory; they don’t lock files.

Several Muse CLI sessions in one project

04

Review, checks and checkpoints

Inspect the change before it lands, and keep a way back.

Close-up of Thalia’s Review screen: the unified diff of a new file, HourlyForecastChart.swift, against baseline 1a05594.
Each changed file’s diff.
Close-up: Approve, bound to snapshot sha256 7681a21…2c43 and approved by Alex Rivera, and Verification passed for swift test with 9 tests.
Approval bound to the snapshot, with the check beside it.
The rewind preview: two files to restore from the last commit, three new files to move to Thalia’s trash (recoverable), and a note that a Before restore checkpoint is added first.
A restore previews exactly what it will change.

Review the change, then approve exactly that.

Changes lists every file that differs from your last commit, and Review shows each file’s diff. When you approve, Thalia records the exact snapshot. If a file changes afterward, the approval is withdrawn until you review again.

In Git projects

Send review notes back to Muse.

Write what should change and send it to the chat the work came from (⌥⌘↩).

Run your checks next to the diff.

Save your project’s verification command once, run it with ⇧⌘T, and see pass or fail beside the changes. The result is marked stale when files change. When a check fails, ask Muse to fix it with the failure attached.

Rewind with a preview first.

Capture a checkpoint. Before a restore writes anything, Thalia shows which files it will put back and which it will move to Thalia’s trash. It also saves a checkpoint of the current files first, so you can undo the rewind.

In Git projects

Preview a static site.

Open a preview inside Thalia. The preview runs from an isolated copy, not your project folder.

Static sites with index.html at the root

Muse’s output can be wrong. Review changes before you rely on them, and keep backups: checkpoints help you undo, but they aren’t a backup.

05

Git, worktrees and pull requests

Ship it from the same window.

Close-up: Ship, with worktree thalia/hourly, base baseline 1a05594, remote origin · gh available, the PR title and description, and Push + open PR.
Ship from Review.
Close-up: Worktrees, with thalia/hourly bound, Remove and New worktree.
A worktree per task.

A separate checkout for separate work.

Create a Git worktree from the Agents screen, open a chat in it, and remove it when you’re done.

In Git projects

Push the branch and open the pull request.

From Review, write the pull request’s title and description, then choose Push + open PR. Thalia works through the GitHub CLI.

GitHub remoteGitHub CLI (gh), signed in

06

Terminal

The command line stays close by.

Close-up of Thalia’s terminal in ~/Developer/Harbor, with git status and a passing swift test run.
A real shell in the project folder.

A shell in every project.

Open the terminal under any chat (⌃`) to run commands in the project folder. For full-screen tools like editors and pagers, Open Terminal Here opens the folder in Terminal.

07

Your context

Instructions, memory, commands and references.

Close-up of the composer’s slash menu for “/p”: /plan, /help, /checkpoint, /checkpoints and your own /explain.
Built-in and custom commands in the composer.
Close-up of Thalia’s custom commands: /changelog and /explain for all projects, and /ui-check for one project.
Commands for you or for one project.

Notes that carry into every turn.

Keep notes for each project, and a personal memory that Muse shares with the CLI. Both go with each turn, and you can switch either off.

Your repository’s rules.

Turn on project rules in Settings, and Muse reads your repository’s rules file, such as THALIA.md or AGENTS.md, from the project root on every turn.

Off by default: turn on in Settings

Bring memory from other tools.

Import Markdown memory from another coding agent into your personal memory or a project’s notes.

Commands you can reuse.

Save a prompt as a slash command, for yourself or for a project. $ARGUMENTS fills in whatever you type after the name. Built-in commands cover plan mode, models, effort and checkpoints.

Give Muse the material.

Attach files to a message, or clip a web page’s text into your next request with /fetch.

08

Routines and skills

Repeatable work, on your terms.

Close-up of Thalia’s Routines screen: three routines, each marked “Runs on demand”, with Run now, Options and Delete.
Routines run when you choose.
Close-up of Thalia’s Skills screen: three trusted skills, and the detail for swift-concurrency with its revision, trust setting and a pin for Harbor.
Skills with trust and pinning.

Routines: saved prompts you run on demand.

Save a prompt against a project and run it when you need it, in a chat or headless in the background. Thalia can notify you when it finishes.

Runs on demand

Skills you can inspect and pin.

Create skills, or import them from a folder or from other agent tools on your Mac. Mark each revision trusted or not, and pin a revision to a project.

09

MCP connectors

The services you already use.

Close-up of Thalia’s MCP screen: Linear and GitHub connectors, each with a key saved in the Keychain, and a button to add another account.
Guided connectors for GitHub and Linear.

Connect the services you already use.

Guided presets for GitHub, Linear, Cloudflare, Sentry and GitLab walk you through setup.

Your own account and authorization for each service

Add any MCP server.

Add a custom connector over streamable HTTP, or as a local command, with OAuth sign-in where the server supports it.

Depends on the server

Connector keys stay in your Keychain.

Keys you enter for the guided GitHub and Linear connectors, and credentials for custom connectors, are stored in the macOS Keychain. Thalia won’t send a key over plain HTTP unless the server is on your Mac.

Know which connectors are live.

A connector that’s on but not signed in is skipped and marked, and Home counts it.

More than one account.

Add a second account for a service, each with its own named key.

10

Native Mac craft

Why it feels like a Mac app.

Thalia’s Home screen for a sample workspace in the light appearance.
Light
The same Home screen in the dark appearance.
Dark
  • New chat ⌘N
  • Composer ⌘L
  • Send ⌘↩
  • Command bar ⌘K
  • Review ⇧⌘R
  • Run checks ⇧⌘T
  • Allow / Deny ⇧⌘A ⇧⌘D
  • Stop the turn ⇧⌘.
  • Screens ⌘1–⌘7

A native Mac app.

Thalia is written in Swift and SwiftUI for macOS 26 and 27 on Apple Silicon.

Keyboard first.

The whole loop has menus and shortcuts, and Settings → Keyboard lists them all.

Light, dark, or follow the system.

Choose an appearance, or let Thalia follow macOS.

A layout you can shape.

Show or hide the sidebar, inspector and terminal, and reset the layout in one step.

A guide in the app.

A searchable guide explains each screen and term, and its keyboard section is generated from the app’s own commands.

11

Privacy and your Muse account

Where your data goes, and what you need.

  1. On your Mac

    Thalia

    • Projects
    • Chats
    • Checkpoints
    • Settings
    • Connector keys

    Connector keys you enter in Thalia are kept in the macOS Keychain.

  2. On your Mac

    Muse Code CLI

    Thalia hands it your messages and the files the agent reads. If you use an API key, the CLI stores it.

  3. Meta

    Muse, under your account

    Muse processes what the CLI sends under your Muse account and Meta’s terms.

Your work stays on your Mac.

Projects, chats, checkpoints and settings are stored on your Mac. Thalia sends Mabry Ventures no analytics, telemetry or usage data.

Muse works under your account.

When you chat, your messages and the files the agent reads go through the Muse Code CLI to Meta, under your Muse account and Meta’s terms. Sign in with your Meta account or a Muse API key; the key is handed to the CLI, which stores it.

Setup that checks its work.

If the Muse CLI is missing, setup installs it from Meta, checking the download first. Then it signs you in and confirms a live reply before you start. Thalia never updates Muse in the middle of a turn, and it asks before running Muse’s own update.

Diagnostics only when you ask.

A diagnostics bundle is made only on request. You see it redacted before saving, and it leaves your Mac only if you send it.

Read the privacy notice

12

What you need.

Thalia is free to start. You need your own Meta Muse access; Meta sets any Muse subscription or usage charges.

Mac
Apple Silicon (M-series). Intel Macs are not supported.
macOS
macOS 26 or macOS 27.
Muse
Meta’s Muse Code CLI, signed in with your own Muse access. Setup can install the CLI and sign you in.
Review, checkpoints, worktrees
A Git repository.
Pull requests
A GitHub remote and the GitHub CLI (gh), installed and signed in.
Connectors
Your own account with each service you connect.

Intel Macs are not supported, and Windows and Linux versions have not been announced.

Thalia is an independent Mabry Ventures product built to work with Meta Muse. It is not made or endorsed by Meta. See how Thalia handles your data.