- 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 instructions → Terminal command execution results
Share terminal sessions with others
Active terminal session → Shareable session link or code
Embed shell sessions in web pages
Terminal session and target webpage → Embedded interactive terminal widget
Execute shell scripts in browser
Shell script files or commands → Script execution results and output
Access system files and directories
File system navigation commands → Directory listings and file contents
Run development tools and utilities
Development commands and tools → Tool execution results and outputs
Tags
Tech Stack
Comments (0)
No comments yet
Editorially curated, with community endorsements as a secondary signal. Corrections welcome.
