Elyra
Elyra The coding agent eTerm The terminal that knows where each command ends Starf An activity monitor for Apple silicon that never invents a number Litr A small, native web browser for macOS e The native code editor Elyra Grove Native local development environment Askr The real server for Laravel & PHP Elyra Framework Rust + Svelte 5 framework for desktop apps Elyra Conductor Local project conductor Elyra SQL Server MySQL-compatible SQL server in Rust Elyra Félagi Agents as teammates on one board Elyra SQL Client Native desktop SQL workbench Elyra SQL Anywhere Replication-ready SQL engine Elyra Sjá SEO & GEO workspace for macOS Elyra DataGrid Server-driven data grid for Laravel
Release notes
Changelog
Elyra
Developer tabs

Developer tabs

Pages served from your own Mac get extra help. A tab on localhost, 127.0.0.1, or a host ending in .test, .local or .localhost is a developer tab, with no setup needed.

Server status

  • The port shows next to the tab in the sidebar, for example :3000.
  • Litr checks every two seconds whether the server answers. When it doesn't, the tab shows a red ●.
  • When the server comes back (you restarted it, or it finished rebuilding), Litr reloads the page, so you see what it serves now.

Only tabs that are loaded are checked.

Reloading when files change

Litr can watch the project's folder and reload the page whenever you save a file.

  1. Open the tab and choose Tabs → Developer Tab… (⌥⌘D).

  2. Litr finds the project folder itself when it can:

    • it looks up the process serving the port (npm run dev, cargo run, php artisan serve, python3 -m http.server, …) and uses the folder it runs in,
    • for a .test, .local or .localhost host (Valet, Herd), it looks for a folder of that name in ~/Code, ~/Sites, ~/Herd, ~/Projects, ~/Developer and similar places.

    If it can't, click Choose… and pick the folder. Detect tries again.

  3. Set Reload when files change to On.

Changes in dependencies, build output and caches are ignored, so they can't cause endless reloads: .git, node_modules, vendor, target, storage, dist, build, .next, .nuxt, .svelte-kit, .turbo, .cache, bootstrap/cache, public/build, tmp and .idea, as well as hidden files (except .env), editor swap files and logs. Several saves in quick succession cause one reload.

Leave it off for tools that already update the page themselves, such as Vite's hot module replacement.

The settings are remembered per site (scheme, host and port).

Errors

A developer tab counts what goes wrong on its page: script errors, files that didn't load (a script, stylesheet or image that gave a 404), and promise rejections nothing handled. The count shows in red next to the tab in the sidebar, for example ⚠3. Click it to open Developer Tab…, which lists them, newest first, with the file and line where there is one. Clear starts over; loading or reloading the page does too.

Litr listens from its own isolated script world, so it doesn't touch the page's scripts or its console. console.error messages aren't counted; Web Inspector has those and the full details.

Only pages served from this Mac are counted. Other sites get nothing extra.

Opening the project

With the project folder known, Developer Tab… has buttons to open it in your terminal and your code editor, named after the apps: for example Open in iTerm and Open in Zed. They are also in the Tabs menu and the command palette as Open Project in Terminal and Open Project in Editor.

Litr uses the first app it finds in Applications:

  • Terminal: eterm, iTerm, Ghostty, WezTerm, Warp, then macOS's Terminal (eterm 0.9.2 or later opens the folder in a new tab)
  • Editor: Zed, Cursor, Visual Studio Code, Windsurf, Sublime Text, Nova, PhpStorm, WebStorm, RustRover

Copy as cURL

Tabs → Copy as cURL (or the command palette) copies a curl command that asks for the page as the tab does: its address, Litr's user agent, and the cookies the tab would send (a forget tab's own cookies, in a forget tab). Paste it in a terminal to see the raw response, or to share a request with a teammate.

It works on any web page, not only developer tabs. The cookies can sign you in, so treat the command like a password: Litr says how many cookies it holds. Only the page itself is copied, not the requests it makes afterwards; use Web Inspector for those.

JSON

A page that is JSON (an API response, a .json file) shows as a tree instead of one long line, on any site. See Browsing.