Skip to content
BetaEmpryo on your phone

Knows your code by heart.

An AI coding agent for your desktop and terminal that learns how your project fits together before it changes a line.

Or install from a terminal
curl -fsSL empryo.com/install.sh | bash

Beta for macOS, Windows and Linux

Backed byLLM Gateway
Empryo desktop app in a chat where the agent finds and fixes a colour bug, with the change shown as a diff and the Genome map docked beside the chat, in the Empryo theme, dark mode.
Empryo in kitty on its home screen, showing the change in progress, how many files depend on it and the file that usually changes with it, with GPT-6 Astra selected, in the Empryo theme, dark mode.
Empryo's iPhone app in a chat that runs on your computer, with the agent's live steps and the composer to steer it, in the Empryo theme, dark mode.
Try another theme

In their own words

People who build with Empryo, on X, Discord and GitHub.

Empryo is so good, the best harness I've ever used. I love the mapping system and the little agent maze you can watch. It has been an amazing addition to my setup.

john fiddlejdfjasjdajd
Choose whose words to read
  • The engine outlives the window? So it keeps coding even when I close the app. That's actually insane.

  • I really like its overall concept and implementation. I especially like the desktop app, which is beautiful and intuitive. I miss that in other harnesses.

    svnpierreDiscord
  • I use Empryo to rewrite itself in Rust, TUI and desktop with GPUI. It's a beast, not a harness.

    robertt3kuk@robertt3kuk
  • Ran two tabs on the same codebase, one refactoring, one writing tests. When the second tab tried to edit a file the first was working on, it flagged the conflict instead of silently overwriting.

    Rajin@rajins
  • I'm sorry, but how are more people not talking about Empryo? This project looks sick!

    dan myles@danmyles_
  • This UI is peak.

    KiLeeDiscord
  • It's so feature-rich. Once you start to get the hang of it, oh boy, it's nice.

    NPC35882722@NPC35982722
  • Finally installed Omarchy and decided to try Empryo. Started with the desktop app and damn, it looks nice.

  • Empryo + multiple refactor tasks = fun day :)

    Theylor@theylor
  • I forgot to thank you for making this. It's incredibly useful and a blast to use.

    Firewave118@Firewave118
  • Both solved. Well done. So nice and promising for a new project!

    Jaaaky@Jaaaky
  • Empryo beats pi in every way. I genuinely haven't felt like my workflow has been this good, ever.

    john fiddlejdfjasjdajd
  • Steering a coding agent from the watch while it keeps grinding at the desk is a wild control surface.

    TobiasDev@0xTobiasDev
  • The Android app is amazing! Thanks a lot!

    vivacarvajalitoDiscord
  • Being able to steer your coding agent from anywhere is a real time-saver.

  • Built with Empryo: prompt to PR in under an hour. Claude Opus 5.5, a lead and three parallel agents, 68M tokens, 98% cached.

    Smakosh@smakosh
  • I've been using Empryo since Monday and so far so good. There's a ton of potential here.

  • I'm signed into four provider accounts, so I'm a huge fan of how you let people use their subscriptions and not only API keys.

    john fiddlejdfjasjdajd
  • Great work! I'm loving driving it with MiMo.

    Aman Kumar Sah@Rapid_IND
  • Building the thing you want to code on is peak dogfooding.

  • Someone showed me your app. Very nice job.

    BlockedPath@BlockedPaths

Quotes are as posted, with typos fixed.

It reads the map first

Empryo keeps a live map of your project, so it knows what an edit will touch before it makes it.

Seventeen real files from Empryo's own code, and every thread is a real import.

Change auto-format.ts and 7 files feel it: 1 directly, 6 more through it.

packages/tools/src/auto-format.tsHow the Genome works

It edits by name

It replaces a function or class by its name, so a line that appears twice is never the wrong one.

Find and replacereplace "return total;"
export function subtotal(cart: Cart) {  let total = 0;  for (const item of cart.items) total += item.price;  return total;  return round(total);wrong function} export function applyDiscount(cart: Cart, code: string) {  const total = subtotal(cart);  if (code === "SPRING") return total * 0.9;  return total;}

The text appears twice. The wrong function changed.

Edit by nameast_edit replace applyDiscount
export function subtotal(cart: Cart) {  let total = 0;  for (const item of cart.items) total += item.price;  return total;} export function applyDiscount(cart: Cart, code: string) {applyDiscount  const total = subtotal(cart);  if (code === "SPRING") return total * 0.9;  return round(total);}

The whole function is swapped, exactly where it lives.

How editing by name works

It checks its own work

After a change it runs your typecheck, lint and tests, and fixes what fails in the same turn.

  1. ChangeOne function
  2. TypecheckPassed
  3. LintPassed
  4. Tests1 failed, off by a cent
  5. FixSame turn
  6. Tests42 passed
  7. ReviewReviewer passes it

How goals and reviewers work

It remembers

Decisions and past bugs are kept per project, and only the notes for the files in play come back.

Files being worked on
  • Past bugPrices are in cents. Divide by 100 only when showing them.
  • DecisionRefunds go through refund.ts, never straight to the bank.
  • No longer trueCheckout still calls the old cart API.
  • Past bugSessions ended early when the clock jumped. Use server time.
  • DecisionTokens refresh five minutes before they expire.
  • No longer trueLogins still use the version 1 cookie.
  • DecisionEvery email goes through the queue, never sent inline.
  • Past bugThe welcome email went out twice on retry. Check the sent flag.
  • No longer trueTemplates live in the old-mail folder.

Working on checkout.ts: 2 notes come back, 1 stale note fades, the rest stay quiet.

How project memory works

Where Empryo stands

Time and cost from every published run, added up for each rival. Shorter bars win.

  • vsOpenCode3 runs

    2.3Ă— faster

    3.0Ă— cheaper

  • vsClaude Code2 runs

    1.8Ă— faster

    2.2Ă— cheaper

  • vspi3 runs

    1.6Ă— faster

    1.3Ă— cheaper

Same bugs, same model, one API key per agent, checked against the provider's bill. Every run, model and caveat

Desktop, terminal or headless

One agent, the same map and memory, wherever you run it.

The full app for macOS, Windows and Linux. Desktop app guide

What the window shows
The Genome map of Empryo's own code, with one file open.

Empryo on your phone

Drive every chat on your computer from your iPhone, iPad, Apple Watch or Android phone.

  • iPhone, iPad and Apple Watch
  • Android

Beta iOS 26, watchOS 26 or Android 10 and later. Ask on Discord for an invite.

Empryo's iPhone app in a chat that runs on your computer, with the agent's live steps and the composer to steer it, in the Empryo theme, dark mode.

Wi-Fi, Tailscale or anywhere

Run /remote in the desktop or terminal app and scan the code. After that, the phone finds your computer on its own.

/remote background on keeps phone access on with every window closed, so the phone can start work by itself.

Six worlds, dark and light

The look you pick here follows you into the app.

Day or night

Ask the models directly

Let the models verify the fit.

The Gemini button copies the prompt for you to paste.

Start with one repository

Give it a real task in a project you know well.

Or install from a terminal
curl -fsSL empryo.com/install.sh | bash