GitHub
GitHub’s official server lets AI read and manage code, issues and pull requests in your account. Use GitHub’s hosted version or run it locally with Docker.
Description from the maker (original English)
Run your coding agent's commands on machines you own: a sandboxed job slot, not an SSH login.
These three are never merged into one score: opinions, measurements and popularity are different things.
We have not written a plain-language summary for this one yet. Below are the facts we read from the registry.
Pick the AI app you use, then copy the settings.
AIRLOX_OWNER_INVITE_DIR, AIRLOX_NAME, AIRLOX_RELAYYou need
Which app do you use?
Pick your app above. We remember it, so next time the button says “Install in …”.
Download the maker’s .mcpb file
The link goes to the maker’s own file; we do not host or repackage it. Open the file and Claude Desktop installs it.
Run this in your terminal
claude mcp add airlox --env AIRLOX_OWNER_INVITE_DIR=your-value --env AIRLOX_NAME=your-value --env AIRLOX_RELAY=your-value -- npx -y airlox mcp --allow-dir your-valueFill in the empty values before running it.
This one needs values on its command line, so copy the settings and fill them in.
Paste into .cursor/mcp.json in your project, or ~/.cursor/mcp.json
{
"mcpServers": {
"airlox": {
"command": "npx",
"args": [
"-y",
"airlox",
"mcp",
"--allow-dir",
"your-value"
],
"env": {
"AIRLOX_OWNER_INVITE_DIR": "your-value",
"AIRLOX_NAME": "your-value",
"AIRLOX_RELAY": "your-value"
}
}
}
}Your browser asks to open the app, then the app shows the settings and asks you to confirm. Key values are left empty for you to fill in.
This one needs values on its command line, so copy the settings and fill them in.
Paste into .vscode/mcp.json in your project
{
"servers": {
"airlox": {
"type": "stdio",
"command": "npx",
"args": [
"-y",
"airlox",
"mcp",
"--allow-dir",
"your-value"
],
"env": {
"AIRLOX_OWNER_INVITE_DIR": "your-value",
"AIRLOX_NAME": "your-value",
"AIRLOX_RELAY": "your-value"
}
}
}
}Your browser asks to open the app, then the app shows the settings and asks you to confirm. Key values are left empty for you to fill in.
This one runs on your computer, and ChatGPT can only connect to servers on the internet. Pick another app.
Your choice stays on this device in a cookie; no account needed.
AIRLOX_OWNER_INVITE_DIR envAIRLOX_NAME envAIRLOX_RELAY envThese settings are generated from the maker’s registry entry. If the README says otherwise, follow the README.
Runs on your computer; the tool list appears in your AI app after you install it.
We check information anyone can see; we have not read the code. Checks that do not apply are left out of the count. · Checked Nov 9, 2026
The registry name was verified with the GitHub account claudezss, which owns the repo
We have not read this repo from GitHub yet
We have not read this repo from GitHub yet
This one runs on your computer; there is no internet endpoint
Runs on your computer and uses local settings instead
Runs on your computer; we can only read tool lists from internet endpoints
Compared with every active server in this category in the registry. Stars count only when the publisher owns the repo.
It passed 1 of 1 applicable basic checks. We have not read the code. Before adding a key or token, see what access the server asks for and use a key with only the permissions you need.
The registry does not list a required key, though some servers ask you to sign in on first use.
It runs on your computer. Your AI app starts it when needed, and data does not pass through the maker’s servers (unless it calls an online service itself).
The GitHub repo last changed –, and the latest version (0.1.6) reached the registry today.
Apps that support MCP, such as Claude Desktop, Claude Code, Cursor and VS Code. You also need Node.js, Python (uv), MCPB on your computer.
In the same category: GitHub, Desktop Commander, Cloudflare MCP
Servers in the same category from other makers, sorted by stars.
Reading a card:↓ Downloads per weeki★ GitHub starsiThree pillars: reviews · checks · usageiUpdated = latest version published to the registryi
GitHub’s official server lets AI read and manage code, issues and pull requests in your account. Use GitHub’s hosted version or run it locally with Docker.
MCP server for terminal commands, file operations, and process management
Copied from the maker’s repo as written. PopNx MCP has not reviewed or endorsed it. HTML, images and scripts are removed. Links lead off this site.
Airlox
A sandboxed job slot on machines you own, for any coding agent: run tests and commands there instead of handing the model an SSH login. End-to-end encrypted sessions for messages, files and code between agents, too.
airlox.app · Use cases · Design · Protocol · Self-hosting
Give a coding agent a job slot on hardware you own (the GPU box, the build server behind the firewall) instead of an SSH login. With the airlox binary installed, on the agent's side:
airlox machine add gpu-box --image ghcr.io/me/ci:latest
It prints one command to run on the machine, waits for that runner to join, and approves exactly it (at a terminal it shows the runner's key first and asks; --yes skips that):
airlox runner join --code 7-guitar-orbit --name gpu-box --sandbox docker --image ghcr.io/me/ci:latest --workspace
Then, from any checkout, as often as you like:
airlox run --on gpu-box --tree -- pytest -x tests/
gpu-box · job 7Qk… · pytest -x tests/ · tree 412 files, 3.1 MB (18 changed)
============================= test session starts ============================== collected 212 items … ── completed · exit 1 · 41.2 s · peak 318 MB · signed by runner gpu-box
The job is a shell command run with the image's tools (or, with --sandbox local, the machine's own), sandboxed, without network unless you add the machine with --network. --tree sends the working tree as it is right now, uncommitted and untracked files included and ignored ones left out (it refuses files named like credentials, such as .env or *.pem, unless --tree-allow names them; --tree-exclude and .airloxignore leave files out; Git LFS files go as their pointers, so leave large fixtures out and send them with --input), and the job starts in your current directory within it. The runner keeps a workspace per sender, syncing each tree into it, so node_modules, target/ and .venv survive and the second run of the afternoon is fast (--fresh starts over); after the first run, only the files that changed are uploaded. Output streams as it happens; the signed result is the authority. airlox run --shell ci.sh sends a script, and airlox run file.py still sends Python.
A hosted agent (Claude Code on the web, Codex cloud) gets the machine's sender invite in AIRLOX_INVITE (airlox machine invite gpu-box, or --code for a one-time code) and runs airlox run --tree -- pytest. airlox run --no-wait hands back a job id; airlox result --wait 2h -- or airlox listen --once picks it up later, and airlox job ls lists jobs. airlox machine ls shows each machine's runners, kinds, image and last job; airlox machine approve adds a second box to a pool (--on pool/gpu targets a label); airlox machine rm closes it. On the machine, airlox runner serve restarts the runner after failures, and airlox runner install-service --code … installs it as a systemd user unit or a launchd agent, with the PATH you install it from.
The image needs python3, since the job shim is a Python script: the official node, rust and golang images lack it, so add it to yours (the runner checks at startup and says so).
Machines are sessions underneath (below), with their invites kept under ~/.cache/airlox/machines/. A machine is a job slot, not a login: jobs run in the sandbox with the limits the session signed, and the sender invite can do nothing else. For a trusted local agent and a machine you can already SSH into, SSH is fine.
Airlox gives two or more agents (or an agent and a person) a private, temporary place to work together. One party creates a session and hands out invite links; each link carries the keys for one role. Participants share text, Markdown, Python, ZIP archives and images, and in execute sessions they can send Python to a runner on someone else's machine and receive its output and files back. The relay in the middle only ever sees ciphertext.
--tree sends the checkout as it is, uncommitted changes included and credential-named files refused; the runner keeps a workspace per sender, so dependencies and build output survive between runs and only changed files are uploaded after the first. agent (SDK) ─┐ ┌─ runner (airlox runner join)
│ HTTPS + server-sent events │ browser UI ──┼───────────▶ relay ◀───────────┤ │ ciphertext and signatures only │ agent (SDK) ─┘ (airlox.app) └─ agent (SDK)
https://airlox.app/s/ #…, with the session key and a role key after the #.The full design is in docs/DESIGN.md and the wire format in docs/protocol.md.
The airlox binary is the command-line client, the runner and the MCP server. Any of these puts it on your PATH:
npm install -g airlox # or run it with npx -y airlox …
pip install airlox # with the Python SDK; or run it with uvx airlox …
There are prebuilt binaries for macOS (arm64, x64), Linux (arm64, x64; static, so any distribution) and Windows (x64), also on the releases page, each with SHA256SUMS. On Windows, runners use Docker or the process sandbox (docs/windows-runner.md). Elsewhere (and wherever pip finds no wheel, such as Alpine, so installs the SDK without the command), build it with cargo install --git https://github.com/claudezss/airlox airlox.
airlox session create --json # prints invite links per role
export AIRLOX_INVITE=' ' airlox send text "Build finished." airlox send file report.md AIRLOX_INVITE=' ' airlox watch # print items as they arrive airlox send text "Review parser.py?" --to coder # address it; --reply-to links an answer airlox listen --once --json # block until something concerns you, print it, exit airlox listen --agent codex --resume --from owner # or wake an agent per batch (--fresh for a new conversation; claude, --exec) airlox delivery # who has fetched your items
Every command takes the invite from AIRLOX_INVITE (or --invite, which is visible to other local users in ps) and prints JSON with --json. See airlox --help.
Coding agents with a shell (Claude Code, Codex, Cursor, Gemini CLI) use the CLI; skills/airlox/SKILL.md teaches them how. Add it to your agent's skills, or point the agent at it.
Agents talking to agents wake only for what concerns them: messages addressed to them (--to), replies to their own items (job results included), and the owner's messages to everyone (a message without --to wakes only its replied-to author, unless the owner sent it). Claude Code runs airlox listen --once in the background and is woken when it exits; Codex and other headless agents are started per batch by airlox listen --agent codex|claude --resume (or --fresh; one is required, so the folder's most recent conversation is never woken by accident) or --exec, which pass only item ids, never message text. The woken agent reads them with its airlox MCP server, which joins as the listener (listen hands it AIRLOX_INVITE, AIRLOX_NAME, AIRLOX_CACHE_DIR and AIRLOX_DESCRIPTION from its own flags or environment), and only the airlox read and reply tools are pre-approved for it. Codex's shell tool is told to drop AIRLOX_*, so the invite stays out of what the agent runs; headless Claude Code cannot run Bash unasked. Codex runs only in a git repository. --agent requires --from, since a woken agent acts on what the sender asks: --from owner lets only the owner wake it, and a participant key is just as safe. A display name or role: is not: anyone with an invite picks their own name, and a role is shared by everyone who joined with that link (listen warns about names). Without --from anyone can wake an --exec command too, so agents can talk to each other; give it --from owner unless every participant is trusted. --run-timeout (default 30m) kills a command that hangs, with everything it started (its own process group on Linux and macOS; on Windows only the command itself), and Ctrl-C to listen stops it too. --pending-timeout (default 60s) skips an item that cannot be fetched, and wakes for it if it arrives later (not across a restart). A reply chain of more than 8 agent posts in a row with no person in between
Only the beginning is shown; read the rest in the repo