Maya Editor

An editor you don't have to leave.

A small native macOS editor with a real terminal inside it. No Electron, no web views — Swift, SwiftUI and a single dependency. With four projects open, a terminal in each and a few files on top, it sits at 150–250 MB of memory, not a gigabyte. Plus git, Kubernetes, databases and issue boards: the things you would otherwise leave the window for several times an hour.

Download 0.9.0

5.3 MB · build 578 · released 14 Sep 2026

macOS 14 and later · Apple Silicon only — an Intel Mac will refuse it and Rosetta will not help: it translates x86 to ARM, not the other way round.

The Maya Editor window: the file navigator on the left, a Swift file open and syntax highlighted beside it

What it does

A real terminal

zsh -l on an actual PTY, not an imitation. The process survives switching tabs, and "is something running in there?" is answered by the PTY rather than guessed. ⇧⌘R opens a new tab straight into claude.

Files and search

Find a file with a double — fuzzy over the project's paths, no index (⌘P works too). Full text through ripgrep on ⇧⌘F, regular expressions included. Twenty languages highlighted without a parser — half a megabyte colours in eighty milliseconds.

Git within reach

The Changes pane: tick the files, write the message, commit. It commits exactly the paths you ticked and leaves the index alone. Plus blame, a diff as a tab, and change marks in the gutter.

It watches the disk

When an agent rewrites a file under you, an untouched buffer quietly picks up the new version with your cursor and scroll intact. With unsaved changes nothing is overwritten and the choice stays yours.

Kubernetes

Pods, a shell into a pod, tailing logs, browsing a pod's files, reading and editing Secrets and ConfigMaps. It runs on your own kubectl and kubeconfig — no bespoke client, no second login, the same contexts as your terminal. You just don't have to type it. A password never passes through process arguments, and saving sends resourceVersion back, so you cannot overwrite someone else's change.

Databases in one click

A local database from docker-compose.yml opens on a click — nothing to fill in. The service and the password come from docker compose config, so ${VAR}, override files and ports are Docker's problem, not yours. Same in Kubernetes: the panel owns the port-forward tunnel itself. ⌘↵ runs the statement under the cursor; only the destructive ones ask first. Which secrets and keys it reads is written down.

Boards and issues

Columns, dragging cards, a card with labels, assignees, comments and images — and the board is another tab of the project, not another window. Over GitHub Projects and Trello.

Several projects, one window

Projects are the outer tabs, files and terminals the inner ones. ⌃⌘] switches project, ⇧⌘] switches tab. Each project keeps its own colour and emoji in .maya/project.json.

The Kubernetes panel listing Secrets with masked values
Secrets reveal one at a time, and copying does not reveal them.
The database browser showing a query result in a grid
Queries go to psql and mysql — no wire protocol of our own.
A card open over the board: labels, assignees, description and comments
A card opens over the board — labels, assignees, description, comments and images.
An issue board with Todo, In Progress and Done columns
The board is another tab of the project, not another window — GitHub Projects and Trello.
A pod list with the in-pod file browser open beneath it, download button included
Browse the files inside a pod and pull one back to your machine. kubectl is still doing the work underneath — you just aren't typing it.

What it deliberately leaves out

LSP, autocomplete, a debugger, extensions, collaboration, remote development, a build system. That is not a list of things not done yet — it is a decision. You already know the editor that does all of it; this one is small on purpose.

Companies backing this

Nobody yet. The Company tier on GitHub Sponsors puts a logo and a link right here — where people deciding about the editor will see it.

How the licence works

30 days free

After downloading you sign in through GitHub and it runs for 30 days. The trial is counted on the server against your GitHub account, so reinstalling will not reset it — and it will not run down before you launch the app either.

Then for sponsors

It keeps running for anyone sponsoring mesour on GitHub. Private sponsorships work too — the question is asked with your own token.

Signing in happens in the browser

The app has no password field and must not have one. The whole sign-in runs at GitHub; only a signed licence comes back.

Seven days offline

A licence is good for a week without a network. It is a deliberate trade: a longer window would mean a cancelled sponsorship taking longer to run out.

Sponsor on GitHub Download 0.9.0