0xTerm

A minimal terminal workspace for macOS, drawn by the GPU.


Features

These are the targets for v0.1. 0xTerm is in development, and nothing on this page ships before then.

Drawn by the GPU

The terminal grid is painted through Metal every frame: one pass for backgrounds, one for shaped text, one for the cursor and selection. Parsing runs on its own thread, so a flood of output never blocks typing.

A real login shell

Each pane runs your shell as a login shell on its own pty, with TERM=xterm-256color and truecolor. Launching from the Dock still gets your PATH.

Split panes

Split right with ⌘D and down with ⇧⌘D, then drag the divider. Inactive panes dim, so you always know where your keys are going. A pane shows a title only when its tab holds more than one.

Tabs that say what is running

A tab is named after its foreground job, like vim or htop, and falls back to the folder name when the shell is idle. Tabs share one row with the window buttons, so the title bar takes no extra space.

A file tree that follows your shell

The sidebar shows the folder your active pane is in. cd and it follows, through OSC 7 when the shell sends it and the process table when it doesn’t. Folders come first, .git and .gitignored files stay out of the way, and the tree updates live as files change.

Search the folder

Type in the sidebar and the whole folder is searched, ripgrep-style, off the main thread. Hits are grouped by file. Click one and it opens at that line, with the match highlighted.

A file viewer beside the shell

Click a file and it opens on the right with syntax highlighting, line numbers and ⌘F find with a match count. It reloads when the file changes on disk, so you can edit in the terminal and read the result next to it.

Markdown and Mermaid preview

Markdown renders as a document, with a Source toggle. Mermaid diagrams are drawn natively, with no browser inside the app, and follow light and dark mode. Relative links open in the viewer.

⌘-click a path

Any path:line in the terminal is a link. ⌘-click it and the viewer opens the file at that line, resolved against the pane’s working folder. URLs open in your browser, and OSC 8 hyperlinks work too.

Drag a file in

Drag a file from the tree onto a pane and its quoted path is typed at the prompt. Right-click the tree for cd Here, New Tab Here, Insert Path and Copy Path.

One config file

Font, size, shell, scrollback and both color palettes live in ~/.config/0xterm/config.toml. Anything you leave out keeps its default. The theme follows the system’s light and dark mode unless you pin one.