Your terminal, anywhere. Run AI agents on your machine. Check on them from your phone.
You start Claude Code on your PC. Complex refactor — it's going to take a while.
You need lunch. You grab your phone. You open MidTerm.
Your agent is still running. It's asking a question.
You type "yes, commit that." You go back to eating.
That's MidTerm. One binary. One password. Any browser.
macOS / Linux:
curl -fsSL https://tlbx-ai.github.io/MidTerm/install.sh | bashWindows (PowerShell):
irm https://tlbx-ai.github.io/MidTerm/install.ps1 | iexOpen http://localhost:2000. Click +. You have a terminal.
The installer asks for a password — nobody gets in without it.
Install Tailscale (free). Now open http://your-machine:2000 from any device, anywhere.
Other options: Cloudflare Tunnel, reverse proxy
- Cloudflare Tunnel — Free, no port forwarding needed
- Reverse proxy — nginx/Caddy with HTTPS
- Single ~15MB binary. No Docker. No Node. No runtime. Download and run.
- Password protected from first run. PBKDF2 hashed, rate-limited, not optional.
- Any shell. Zsh, Bash, PowerShell, CMD.
- Multiple terminals, one browser tab. Split panes, drag to reorder.
- Works on any screen. Phone, tablet, laptop — resize with one click.
- Auto-updates. One click in the UI, page reloads automatically.
More features
- Native AOT compiled — macOS, Windows, Linux
- Priority multiplexing — Active terminal gets instant delivery, background sessions batch efficiently
- Tmux compatibility — AI coding tools that detect tmux work out of the box
- Manager bar — Customizable quick-action buttons for common commands
- Clipboard image paste — Alt+V to inject clipboard images into terminal
- Installable (PWA) — Add to home screen on mobile, standalone window on desktop
- AI coding agents — Claude Code, OpenAI Codex, Aider, Cursor CLI
- Long-running tasks — Builds, deployments, data processing
- Any TUI app — htop, vim, tmux sessions, whatever you run in a terminal
Your PC Anywhere
┌─────────────────┐ ┌─────────────────┐
│ Claude Code │ HTTPS │ │
│ OpenAI Codex │◄────────────►│ Browser │
│ Any TUI app │ WebSocket │ │
└─────────────────┘ └─────────────────┘
Full power Full access
Command line options
mm [options]
--port 2000 Port to listen on (default: 2000)
--bind 0.0.0.0 Address to bind to (default: 0.0.0.0)
--version Show version and exit
--hash-password Hash a password for settings.json
Configuration
Settings stored in:
- Service mode:
%ProgramData%\MidTerm\settings.json(Windows) or/usr/local/etc/MidTerm/settings.json(Unix) - User mode:
~/.MidTerm/settings.json
{
"defaultShell": "Pwsh",
"defaultCols": 120,
"defaultRows": 30,
"authenticationEnabled": true,
"passwordHash": "$PBKDF2$100000$..."
}Security details
- PBKDF2 hashing — 100,000 iterations with SHA256
- Session cookies — 3-week validity with sliding expiration
- Rate limiting — Lockout after failed login attempts
- Change your password anytime in Settings > Security
Installation options
The installer asks you to choose:
| Option | Best for | Privileges |
|---|---|---|
| System service | Always-on access, headless machines, remote access before login | Requires admin/sudo |
| User install | Try it out, occasional use, no admin rights | No special permissions |
| Platform | Download |
|---|---|
| macOS ARM64 | mm-osx-arm64.tar.gz |
| macOS x64 | mm-osx-x64.tar.gz |
| Windows x64 | mm-win-x64.zip |
| Linux x64 | mm-linux-x64.tar.gz |
Building from source
Prerequisites:
- .NET 10 SDK
- esbuild — TypeScript bundler, must be in PATH
git clone https://github.com/tlbx-ai/MidTerm.git
cd MidTerm
# Build
dotnet build src/Ai.Tlbx.MidTerm/Ai.Tlbx.MidTerm.csproj
# AOT binary (platform-specific)
cd src/Ai.Tlbx.MidTerm
./build-aot-macos.sh # macOS
./build-aot.cmd # Windows
./build-aot-linux.sh # LinuxContributions welcome! See CONTRIBUTING.md for guidelines.
Note: All contributions require acceptance of our Contributor License Agreement.
GNU Affero General Public License v3.0
Commercial licensing available — contact for details.
Created by Johannes Schmidt
