A Browser With a Built-in Terminal for Web Developers
Nemo · · 3 min read
Web development is a loop between two windows: a terminal running the dev server and a browser showing the result. A browser with a built-in terminal folds that loop into one window. In Monok, a terminal is a pane: press Ctrl+` and one splits in below the page, running your own login shell. Cmd+click a localhost link in its output and it opens in a tab. It is in the current release, version 0.1.0.
What does the terminal do?
| Feature | What it means |
|---|---|
| Terminal panes | Ctrl+` splits a terminal in below the page and moves the keyboard to it; press it again to go back to the page |
| Your own shell | Your login shell with your .zshrc, so your prompt, aliases and version managers load as they do in Terminal; Settings › Terminal can pick another shell from the system’s list |
| Panes like tmux | Cmd+D splits right, Shift+Cmd+D splits down, Option+Cmd+arrows move the focus, Shift+Cmd+Return zooms a pane |
>command in the Magic Bar |
In an empty pane, type >npm test in the Magic Bar and press Return: that pane becomes a terminal and runs it |
| Links | Cmd+click on http://localhost:5173 in the output opens it in a browser tab |
| Find | Cmd+F searches the terminal’s scrollback |
| Open a folder | File › Open Folder in Terminal (Shift+Cmd+O) starts a terminal pane in the folder you pick |
Pane layouts come back with the session. A terminal comes back as an empty pane, because a shell only starts when you ask for one.
Why put a terminal in a browser?
Because switching windows is the most common thing a web developer does, and every switch breaks a little concentration. With the dev server in a pane under the page you start it, watch it compile, open the URL and look at the result in the same tab. It fits the rest of the design: chrome that stays out of the way and a keyboard-first flow.
It is a real terminal, not a toy console: input methods and dead keys work, Cmd+C and Cmd+V copy and paste, Cmd+K clears, and each terminal has its own font size.
Is a terminal in a browser safe?
This is the question that matters, so the boundary is simple: the terminal is native browser chrome, and web pages can never reach it. No JavaScript API opens it, reads its output or types into it, and neither do the browser’s own browser:// pages. Typing or pasting >command never runs anything; only your own Return key does. A terminal starts on four actions only: Ctrl+`, the Magic Bar, the menu command and Open Folder in Terminal, and the browser’s tests check that nothing else in the code can start one.
Cmd+click on a link in the terminal opens a normal tab, the same as typing the address yourself.
Who is it for?
Mostly people who build for the web: front-end developers running Vite, Next.js or Angular dev servers, and anyone who keeps a terminal open next to the browser all day. If you never open a terminal, you never see it: there is no button for it in the interface, only the shortcut and the menu.
FAQ
Is the terminal available now?
Yes, in version 0.1.0. The download is for macOS 14 or later.
Can a website run commands in my terminal?
No. The terminal is part of the browser’s own interface and is never exposed to web pages or JavaScript.
Does it cost much memory?
Measured on an M5 Pro, the app process uses 46 to 47 MB with a page, a terminal pane and an empty pane open, and 49 MB with one terminal filling the window. WebKit’s processes for the page are separate. The lightweight browser guide explains how to measure.