NightJar: Every dev server, one window.

Workspaces, side-by-side terminals and live ports. Your AI agent drives the same servers over MCP.

Lite is free forever for up to 3 apps. macOS, Linux and Windows.

Client work NightJar Pro
Client work / storefront / next dev
Live serversnext devpnpm dev
outputportsenvironmentFilter lines…   wrap   follow
$ pnpm dev
> storefront@0.1.0 dev ~/code/storefront
> next dev --turbopack
▲ Next.js 15.2.1
- Local: http://localhost:3000
- Environments: .env.local
✓ Ready in 842ms
○ Compiling /dashboard ...
✓ Compiled /dashboard in 311ms
runningpid 48217 · up 2h 14m:3000 ↗
Scroll down for more

Four themes free. Sixteen more with Pro.

Click one to try it. Retro sets go full monospace, and every colour is editable.

Point the folder, get the commands.

NightJar reads the project and offers what can run. Monorepos too: apps/api dev lands in the right folder.

~/code/storefrontpnpm workspace (3 packages)
Detected commands

$ cd ~/code/storefront && pnpm dev

  • Next.js
  • Nuxt
  • Remix
  • Astro
  • SvelteKit
  • Vite
  • NestJS
  • Express
  • Fastify
  • Expo
  • React Native
  • Electron
  • Gatsby
  • Docusaurus
  • Eleventy
  • Laravel
  • Symfony
  • Statamic
  • Drupal
  • Craft CMS
  • Magento
  • TYPO3
  • Joomla
  • WordPress
  • Bedrock
  • Strapi
  • Payload
  • Directus
  • Sanity
  • Keystone
  • Django
  • Wagtail
  • FastAPI
  • Flask
  • MkDocs
  • Rails
  • Jekyll
  • Hugo
  • Go
  • Rust / Tauri
  • Flutter
  • Spring Boot
  • .NET
  • Deno
  • Docker Compose
  • Make

Plus npm, pnpm, yarn, bun, uv, poetry, DDEV, Lando and Sail.

Organize first. Run side by side.

Group apps into workspaces, add several folders in one pass, then split one tab to keep the terminals that matter side by side.

Split tabSplit rightSplit down
storefront · web :3000
$ pnpm dev
▲ Next.js 15.2.1
✓ Ready in 842ms
GET /dashboard 200 in 34ms
○ Compiling /products ...
api · worker :4000
$ pnpm dev:worker
queue connected
✓ listening on :4000
job 84 completed in 118ms
waiting for next job
3 running2 terminals2 portslogs following
  • WorkspacesSeparate client, product, and personal apps. Start a whole workspace together.
  • Multi-folder importChoose several folders once; NightJar detects and queues each app intelligently.
  • Terminal panesSplit any tab right or down, up to ten terminals side by side.
  • Fast log renderingHeavy streams are batched and trimmed, so long sessions keep scrolling smoothly.

Every server on one board.

URL, CPU, memory and uptime for every process, live. Run, stop or restart a whole app from its card.

Stop means stop.

Every command gets its own process group. Stop takes down all of it.

kill(-pgid, SIGTERM)

A clean exit for the whole tree.

wait 1000ms

Time for shutdown hooks, not stuck watchers.

kill(-pgid, SIGKILL)

Whatever ignored the first one.

On Windows: the whole tree by parent pid, at once.

tsx watch ignoring SIGTERM should not hold tomorrow’s port.

Quit stops everything.
On macOS and Linux, a crash is swept on next launch.

The ports panel.

Every listening port, grouped by process and tagged with your app. Kill the whole group in one click.

Listening TCP ports on this machine
PortCommandPIDAppAction
:3000next dev --turbopack48217storefront › web
:4000tsx watch src/server.ts48260storefront › api
:5432postgres -D /opt/homebrew/var/postgresql911
:8000python manage.py runserver48502
:7777/Applications/NightJar.app/Contents/MacOS/NightJar47102this app

EADDRINUSE, handled.

NightJar frees the port before a start. If a script hid it, the crash names it: freed, retried once. System daemons are never touched.

Your AI agent stops fighting you for the port.

Claude Code, Codex, Cursor, VS Code and Windsurf talk to NightJar over MCP. They restart the server you already run and read its logs, instead of starting a second copy in their own shell.

One line to connect.

Settings › AI agents has a snippet for each client with your port filled in. Streamable HTTP for most, stdio for Claude Desktop.

claude mcp add --transport http --scope user nightjar http://127.0.0.1:7777/mcp
codex mcp add nightjar --url http://127.0.0.1:7777/mcp
  • list_apps

    Every app, process state, URL, branch and what its checks found.

  • get_logs

    Latest lines of one process or all, ANSI stripped, regex filter.

  • start

    Waits until the URL answers. A task comes back passed or failed.

  • stop / restart

    Same as the card. Restart waits like start.

  • add_app

    Turns the agent’s folder into an app with the detected dev command.

  • set_process

    Add, change or remove a process without opening Settings.

  • send_input

    Answers a prompt or presses Vite’s r, and returns the output.

  • list_ports

    Every listening port, and which app owns it.

Find what’s eating your RAM.

Usage shows CPU and memory for everything NightJar runs, terminals included. Clean RAM finds the headless browsers and MCP servers your AI sessions left behind, says which ones still have an owner, and kills the orphans.

Clean RAM · outside NightJar · biggest first2.3 GB orphaned
Processes outside NightJar, biggest first
MemoryCommandKindOwnerAction
1.4 GBchrome-headless-shell --remote-debugging-pipePlaywrightparent exited
612 MBnode @playwright/mcpMCP serverparent exited
388 MBnode @modelcontextprotocol/server-filesystemMCP serverclaude · 48811in use
214 MBnode context7-mcpMCP serverparent exited
96 MBesbuild --servicedev toolparent exited
  • Safe by defaultEach process is re-checked, then signalled on its own, never by group.
  • Crash alertsA crash, or a minute over 2 GB or 90% CPU, flags the card, tray and Dock.
  • Tray gaugesCPU, RAM and disk at a glance in the macOS menu bar.

Lite lists stray processes and shows tray gauges. Usage, killing and alerts are Pro.

“Hey Siri, start aralsync.”

A Pro shortcut on macOS. NightJar starts the app, waits until the URL answers, then opens it.

{"app":"aralsync","url":"http://localhost:5173/","ready":true,"opened":true}
  • Loose matching“aral sync” or just “sync” works.
  • Cold startLaunches NightJar if it is closed.
  • Any platform, Lite tooPOST /api/start?name=aralsync

Details that save a terminal tab.

  • Real terminals

    A real pty. vim, aliases and Ctrl-C work.

  • Fast log tabs

    Filter, follow, copy. Heavy streams stay smooth.

  • Split tabs

    Up to ten panes in one tab, split right or down.

  • Status bar

    State, pid, uptime, restarts, URL.

  • Readable URLs

    storefront.localhost:7780, HTTPS with mkcert.

  • Project checks

    Branch, ahead/behind, changed deps, missing env keys.

  • Start order

    Web after API after DB, each waiting until ready.

  • Tasks

    Test, lint and build show passed or failed.

  • Click to open

    src/app.ts:12:5 in a log opens your editor there.

  • Find my projects

    First run scans your home folder for projects.

  • Multi-folder add

    Pro: pick several folders, set up each in turn.

  • Restart on crash

    Backs off from 1s up to 30s.

  • Per-process env

    Env file, overrides, working folder.

  • Your PATH

    nvm, pnpm and bun just resolve.

  • Any shell

    Switch one terminal to zsh, bash, fish or PowerShell.

  • Workspaces

    Pro groups with their own icon, colour and apps.

  • Icon per app

    Guessed from its dependencies.

  • Keyboard

    Rebindable. ⌘1…0 picks a tab, ⌘C stops.

  • Lives in the tray

    Close the window. Servers keep running.

  • In-app updates

    Signed, downloaded in the background, one restart.

  • Spacing

    Scale the whole UI, 60–160%.

  • Themes

    Twenty, from Nord to Game Boy.

  • Runs locally

    API on 127.0.0.1, cross-site requests refused.

  • One config file

    ~/.nightjar/config.json

macOS, Linux and Windows.

Same app everywhere. Siri stays on the Mac.

  • macOS

    Universal build. Menu bar gauges, Siri, nightjar:// links.

    process groups, lsof, ps
  • Linux

    AppImage. Live CPU read from /proc.

    process groups, lsof, /proc
  • Windows

    x64 installer. cmd.exe or PowerShell.

    process trees, netstat, CIM

Start with Lite. Unlock everything with Pro.

Lite is free forever. Pro is a one-time purchase for every feature and no app limits.

NightJar LiteFree
Start with the essentials. $0 forever

No payment. No time limit.

  • Up to 3 apps
  • 4 themes
  • Every core feature
NightJar Pro56% off
Was $17.77 $7.77 once

Save $10. One payment. All of Pro.

  • Unlimited apps + workspaces
  • AI agents over MCP
  • Usage, Clean RAM and crash alerts
  • All 20 themes
  • Siri shortcuts (macOS)
  • Lite stays free forever. No time limit.
  • Key by email, paste it in Settings.
  • Offline checks never lock you out.
  • Over the cap? Existing apps keep working.
  • Remove the key to move the seat.

Runs locally on 127.0.0.1. macOS, Linux and Windows.