GitHub
Connect AI assistants to GitHub - manage repos, issues, PRs, and workflows through natural language.
作者による説明(英語の原文)
Run your coding agent's commands on machines you own: a sandboxed job slot, not an SSH login.
この3つを1つのスコアにまとめることはしません。意見、測定、人気はそれぞれ別のものだからです。
このサーバーのやさしい解説はまだ書いていません。以下はレジストリから読み取った事実です。
使っているAIアプリを選んで、設定をコピーしてください。
AIRLOX_OWNER_INVITE_DIR, AIRLOX_NAME, AIRLOX_RELAY必要なもの
どのアプリを使っていますか?
上でアプリを選んでください。選んだアプリを覚えておくので、次からはボタンに「…にインストール」と表示されます。
リンク先は作者自身のファイルです。私たちが置いたり再パッケージしたりしたものではありません。ファイルを開くと、Claude Desktopがインストールします。
ターミナルでこれを実行します
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-value動かす前に、空欄の値を入力してください。
このサーバーは起動コマンドに値を入れる必要があるので、設定をコピーして入力してください。
プロジェクトの .cursor/mcp.json、または ~/.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"
}
}
}
}ブラウザがアプリを開いてよいか確認し、そのあとアプリが設定を表示して確認を求めます。キーの値は空欄のままなので、自分で入力してください。
このサーバーは起動コマンドに値を入れる必要があるので、設定をコピーして入力してください。
プロジェクトの .vscode/mcp.json に貼り付けます
{
"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"
}
}
}
}ブラウザがアプリを開いてよいか確認し、そのあとアプリが設定を表示して確認を求めます。キーの値は空欄のままなので、自分で入力してください。
これはパソコンで動くサーバーですが、ChatGPTがつなげるのはインターネット上のサーバーだけです。ほかのアプリを選んでください。
選んだアプリは、この端末のCookieに保存されます。アカウントは不要です。
AIRLOX_OWNER_INVITE_DIR envAIRLOX_NAME envAIRLOX_RELAY envこの設定は、作者のレジストリ登録情報から作成しています。READMEと違う場合は、READMEに従ってください。
パソコンで動くサーバーです。インストールすると、ツール一覧がAIアプリに表示されます。
誰でも見られる情報をチェックしており、コードは読んでいません。当てはまらない項目は数に入れていません。 · 2026年11月8日にチェック
レジストリ名は、リポジトリを所有するGitHubアカウント claudezss で確認済みです
このリポジトリはまだGitHubから読み取っていません
このリポジトリはまだGitHubから読み取っていません
これはパソコンで動くため、インターネット上のエンドポイントはありません
パソコンで動き、代わりにローカルの設定を使います
パソコンで動くサーバーです。ツール一覧を読み取れるのは、インターネット上のエンドポイントがある場合だけです
レジストリでこのカテゴリにある有効なすべてのサーバーと比較しています。スターは、公開者がリポジトリの所有者である場合だけ数えます。
当てはまる基本チェック1項目のうち1項目に合格しました。コードは読んでいません。キーやトークンを追加する前に、サーバーがどんなアクセスを求めているかを確認し、必要な権限だけを持つキーを使ってください。
レジストリには必須のキーは載っていません。ただし、最初に使うときにサインインを求めるサーバーもあります。
あなたのパソコンで動きます。必要なときにAIアプリが起動し、データは作者のサーバーを通りません(サーバー自体がオンラインサービスを呼び出す場合を除きます)。
GitHubリポジトリの最終更新は–、最新バージョン(0.1.5)がレジストリに届いたのは10 日前です。
Claude Desktop、Claude Code、Cursor、VS CodeなどのMCP対応アプリで使えます。パソコンにNode.js, Python (uv), MCPBも必要です。
同じカテゴリには:GitHub, Desktop Commander, Cloudflare MCP
同じカテゴリで、ほかの作者が作ったサーバー。スターの多い順。
カードの見方:↓ 週あたりのダウンロードi★ GitHubスターi3つの柱:レビュー · チェック · 利用状況i更新=最新バージョンをレジストリに公開した日i
Connect AI assistants to GitHub - manage repos, issues, PRs, and workflows through natural language.
作者のリポジトリから書かれたとおりにコピーしたものです。PopNx MCPは内容を確認・推奨していません。HTML、画像、スクリプトは取り除いています。リンクはこのサイトの外へ移動します。
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
冒頭だけを表示しています。続きはリポジトリで読めます