Vibeleaderboard
Index / tool
Visit localterm.dev
Category
Developer Tools
Rank
No. 1393Tools index

Previous survey · No. 1399 ·

Pricing
Open Source
Type
TOOL
Builder
millionco
GitHub
166 stars
Date

About

Run a real terminal inside any browser tab — share or embed shell sessions without installing native software.

What it does

LocalTerm maps each browser tab to a separate local shell process. Opening a tab creates a session, while closing or reloading it destroys that session. A local daemon serves the interface and carries terminal input, output, resizing, titles, and working-directory updates over WebSockets.

Why it's ranked here

The product has a crisp mental model and unusually explicit local security boundaries. It rejects non-loopback hosts, checks request headers against DNS rebinding, validates socket messages, and cleans up shell processes when connections close. The deliberate lack of reconnection also makes session behavior easy to predict.

What's good

Startup requires one npm command, with global installation available for regular use. The daemon supports start, stop, status, restart, custom ports, foreground operation, and suppressed browser opening. Heavy output receives batching and backpressure handling, while heartbeat checks remove dead connections. Typed errors provide specific failure categories and useful recovery hints.

Tradeoffs

Tabs are intentionally disposable. Reloading loses the current shell, and there are no session identifiers, stable session URLs, or reconnection support. Persistence requires running tmux inside the shell. Loopback-only binding prevents direct remote access or network sharing. The package also requires Node 22 or newer.

How to use it well

Use LocalTerm when you want multiple short-lived local shells organized as browser tabs, especially during development or command-line work already centered in a browser. Install it globally for repeated use, or run it through npm for occasional sessions. Add tmux when work must survive reloads. Choose another tool for remote access, durable session management, or network collaboration.

Technical notes+

The TypeScript monorepo declared in package.json uses pnpm workspaces, Turbo, ES modules, Node >=22, and separate CLI and server packages. packages/cli/src/index.ts builds the Commander interface, while packages/cli/src/state.ts stores PID, port, and log state under ~/.localterm/. packages/server/src/index.ts combines Hono, @hono/node-server, WebSockets, session capacity checks, heartbeat handling, output batching, and socket backpressure. packages/server/src/session.ts wraps node-pty, filters inherited environment variables through a denylist, tracks terminal size, emits title and cwd events, and kills the PTY during disposal. packages/server/src/schemas.ts validates strict input, resize, output, exit, title, session, and cwd messages with Zod. Both packages/cli/vitest.config.ts and packages/server/vitest.config.ts target tests/**/*.test.ts in forked Node pools.

Observed

License
MIT
Primary language
TypeScript
Packaging
npm package with npx execution and global installation options
Interface
CLI plus a browser interface backed by HTTP and WebSockets
Runtime
Node.js 22 or newer
Repository structure
pnpm workspace monorepo with separate CLI and server packages
Test setup
CLI and server packages each configure Vitest for Node-based test suites

Read from README.md, package.json, packages/cli/vitest.config.ts, packages/server/vitest.config.ts, packages/cli/src/index.ts, packages/cli/src/paths.ts, packages/cli/src/state.ts, packages/cli/src/errors.ts, packages/server/src/index.ts, packages/server/src/types.ts, packages/cli/src/constants.ts, packages/server/src/errors.ts, packages/cli/bin/localterm.mjs, packages/server/src/schemas.ts, packages/server/src/session.ts.

What it can do

  • Run terminal commands in browser

    Command line instructionsTerminal command execution results

  • Share terminal sessions with others

    Active terminal sessionShareable session link or code

  • Embed shell sessions in web pages

    Terminal session and target webpageEmbedded interactive terminal widget

  • Execute shell scripts in browser

    Shell script files or commandsScript execution results and output

  • Access system files and directories

    File system navigation commandsDirectory listings and file contents

  • Run development tools and utilities

    Development commands and toolsTool execution results and outputs

Tags

terminalbrowserwebshellremote

Tech Stack

Node.jsVite

Comments (0)

No comments yet

Editorially curated, with community endorsements as a secondary signal. Corrections welcome.