Execkit
ใช้ทำอะไรได้
ยังไม่มีคำอธิบายภาษาไทย ดูข้อเท็จจริงด้านล่าง หรือเปิดคำอธิบายต้นฉบับจากผู้ทำ
- ต่อแบบ ติดตั้งในเครื่อง
- บัญชีหรือคีย์ ไม่ต้องใส่คีย์
- หมวด เครื่องมือนักพัฒนา
คำอธิบายต้นฉบับจากผู้ทำ (อังกฤษ)
Stateful, structured, safe shell sessions for AI agents over local, SSH, and Docker.ติดตั้ง
เลือกโปรแกรม AI ที่คุณใช้ แล้วคัดลอกค่าตั้งไปวาง
ผลตรวจผ่าน 3/3 · ทำงานบนเครื่องคุณ
ขั้นแรก: คุณใช้ AI ตัวไหน
เลือกแอปที่คุณใช้ ขั้นตอนจะขึ้นด้านล่าง
ต่อกับ Claude ได้ แต่ต้องเตรียมก่อน
ต้องลง Python (uv) ในเครื่องก่อน (ทำครั้งเดียว) · ใช้ได้เฉพาะแอป Claude บนคอม (Windows หรือ Mac) ไม่ใช่บนเว็บหรือมือถือ
ลง Python (uv) ในเครื่อง
ทำครั้งเดียว ใช้ได้กับทุกตัวที่ต้องใช้ Python (uv)
เปิดไฟล์ตั้งค่าของแอป Claude บนคอม
SettingsDeveloperEdit Config
วางค่าตั้งนี้แล้วบันทึกไฟล์
กำลังตรวจคำสั่ง · ปุ่มคัดลอกจะขึ้นเมื่อตรวจผ่าน
ปิดแอป Claude แล้วเปิดใหม่
ลองเลย
ใช้ Execkit บอกหน่อยว่าทำอะไรให้ฉันได้บ้าง แล้วลองทำให้ดูหนึ่งอย่าง✓ ถ้า Claude บอกว่ากำลังใช้ Execkit หรือมีชื่อเครื่องมือของ Execkit ขึ้นในคำตอบ แปลว่าต่อสำเร็จ
ชื่อเมนูตรวจกับหน้าช่วยเหลือของ Anthropic เมื่อ 11 พ.ย. 2569 · หน้าจอของคุณอาจต่างเล็กน้อยตามรุ่นของแอป
ChatGPT ยังต่อ Execkit ไม่ได้
Execkit ต้องติดตั้งในเครื่องคุณ แต่ ChatGPT ต่อได้เฉพาะตัวที่ทำงานบนเว็บ
คุณทำแบบนี้แทนได้
ก · ใช้แอปที่ต่อ Execkit ได้
- ต้องลง Python (uv) ในเครื่องก่อน (ทำครั้งเดียว) · ใช้ได้เฉพาะแอป Claude บนคอม (Windows หรือ Mac) ไม่ใช่บนเว็บหรือมือถือ
- ต้องลง Python (uv) ในเครื่องก่อน (ทำครั้งเดียว)
- ต้องลง Python (uv) ในเครื่องก่อน (ทำครั้งเดียว)
- ต้องลง Python (uv) ในเครื่องก่อน (ทำครั้งเดียว)
ข · ตัวอื่นในหมวด เครื่องมือนักพัฒนา ที่ต่อกับ ChatGPT ได้
เลือกจากตัวที่ใช้มากในหมวดเดียวกัน เฉพาะตัวที่ต่อด้วยที่อยู่ได้โดยไม่ต้องใส่คีย์
- Sentry✓ ChatGPT
- Compiler Explorer✓ ChatGPT
- GitDiagram✓ ChatGPT
ต่อกับ Claude Code ได้ แต่ต้องเตรียมก่อน
ต้องลง Python (uv) ในเครื่องก่อน (ทำครั้งเดียว)
ลง Python (uv) ในเครื่อง
ทำครั้งเดียว ใช้ได้กับทุกตัวที่ต้องใช้ Python (uv)
เปิด Terminal
Mac: กด Command+Space พิมพ์ Terminal · Windows: เปิด PowerShell
วางคำสั่งนี้แล้วกด Enter
กำลังตรวจคำสั่ง · ปุ่มคัดลอกจะขึ้นเมื่อตรวจผ่าน
พิมพ์ /mcp ใน Claude Code
ต้องเห็น Execkit ในรายการและขึ้นว่าเชื่อมต่อแล้ว
ลองเลย
ใช้ Execkit บอกหน่อยว่าทำอะไรให้ฉันได้บ้าง แล้วลองทำให้ดูหนึ่งอย่าง✓ ถ้า Claude Code บอกว่ากำลังใช้ Execkit หรือมีชื่อเครื่องมือของ Execkit ขึ้นในคำตอบ แปลว่าต่อสำเร็จ
ชื่อเมนูตรวจกับหน้าช่วยเหลือของ Anthropic เมื่อ 11 พ.ย. 2569 · หน้าจอของคุณอาจต่างเล็กน้อยตามรุ่นของแอป
ต่อกับ Cursor ได้ แต่ต้องเตรียมก่อน
ต้องลง Python (uv) ในเครื่องก่อน (ทำครั้งเดียว)
ลง Python (uv) ในเครื่อง
ทำครั้งเดียว ใช้ได้กับทุกตัวที่ต้องใช้ Python (uv)
กดปุ่มนี้เพื่อเปิด Cursor
กำลังตรวจคำสั่ง · ปุ่มคัดลอกจะขึ้นเมื่อตรวจผ่าน
เปิดแชตของ AI ใน Cursor โหมด Agent
ลองเลย
ใช้ Execkit บอกหน่อยว่าทำอะไรให้ฉันได้บ้าง แล้วลองทำให้ดูหนึ่งอย่าง✓ ถ้า Cursor บอกว่ากำลังใช้ Execkit หรือมีชื่อเครื่องมือของ Execkit ขึ้นในคำตอบ แปลว่าต่อสำเร็จ
ชื่อเมนูตรวจกับหน้าช่วยเหลือของ Cursor เมื่อ 11 พ.ย. 2569 · หน้าจอของคุณอาจต่างเล็กน้อยตามรุ่นของแอป
ต่อกับ VS Code ได้ แต่ต้องเตรียมก่อน
ต้องลง Python (uv) ในเครื่องก่อน (ทำครั้งเดียว)
ลง Python (uv) ในเครื่อง
ทำครั้งเดียว ใช้ได้กับทุกตัวที่ต้องใช้ Python (uv)
กดปุ่มนี้เพื่อเปิด VS Code
กำลังตรวจคำสั่ง · ปุ่มคัดลอกจะขึ้นเมื่อตรวจผ่าน
เปิดแชตของ AI ใน VS Code โหมด Agent
ลองเลย
ใช้ Execkit บอกหน่อยว่าทำอะไรให้ฉันได้บ้าง แล้วลองทำให้ดูหนึ่งอย่าง✓ ถ้า VS Code บอกว่ากำลังใช้ Execkit หรือมีชื่อเครื่องมือของ Execkit ขึ้นในคำตอบ แปลว่าต่อสำเร็จ
ชื่อเมนูตรวจกับหน้าช่วยเหลือของ VS Code เมื่อ 11 พ.ย. 2569 · หน้าจอของคุณอาจต่างเล็กน้อยตามรุ่นของแอป
สำหรับคนเขียนโค้ด: คำสั่ง Terminal และค่าตั้ง JSON
ติดตั้งในเครื่อง
Claude Code
กำลังตรวจคำสั่ง · ปุ่มคัดลอกจะขึ้นเมื่อตรวจผ่าน
Claude Desktop (claude_desktop_config.json)
กำลังตรวจคำสั่ง · ปุ่มคัดลอกจะขึ้นเมื่อตรวจผ่าน
Cursor (~/.cursor/mcp.json)
กำลังตรวจคำสั่ง · ปุ่มคัดลอกจะขึ้นเมื่อตรวจผ่าน
VS Code (mcp.json)
กำลังตรวจคำสั่ง · ปุ่มคัดลอกจะขึ้นเมื่อตรวจผ่าน
ค่าตั้งนี้สร้างจากข้อมูลใน registry ของผู้ทำ ถ้าไม่ตรงกับ README ให้เชื่อ README
สรุป
ใช้กับโปรแกรมไหนได้
ดูจากแบบการต่อของ server ตัวนี้ และเอกสารของผู้ทำโปรแกรมแต่ละตัว ตรวจเมื่อ 10 พ.ย. 2569
ติดตั้งบนเครื่องได้ใน
ClaudeGooseLM StudioMsty StudioCherry StudioCursorVS Code + GitHub CopilotVisual StudioWindsurf (Devin Desktop)ZedKiroClineContinueJetBrains AI AssistantClaude CodeCodex CLIGemini CLIOpenCodenodecodeWarpLibreChatRaycast
คู่มือที่เกี่ยวข้อง
ทำอะไรได้บ้าง
รันในเครื่องคุณ รายการเครื่องมือจะขึ้นในแอป AI หลังติดตั้ง
ผลตรวจเบื้องต้นi
เราตรวจจากข้อมูลที่ใครก็เปิดดูได้ ยังไม่ได้อ่านโค้ด ข้อที่ไม่เกี่ยวกับตัวนี้ไม่นับในตัวหาร · ตรวจเมื่อ 13 พ.ย. 2569
- ✓ ผ่าน
ตัวตนผู้ทำตรงกับ repo
ชื่อใน registry ยืนยันด้วยบัญชี GitHub jayashankarvr ซึ่งเป็นเจ้าของ repo
- ✓ ผ่าน
ยังมีคนดูแล
มีการแก้โค้ดล่าสุด 2 เดือนที่ผ่านมา
- ✓ ผ่าน
มีสัญญาอนุญาต (license)
ใช้ Apache-2.0
- – ไม่เกี่ยว
endpoint ตอบ
ตัวนี้รันบนเครื่องคุณ ไม่มี endpoint บนอินเทอร์เน็ต
- – ไม่เกี่ยว
ล็อกอินแบบ OAuth
ตัวนี้รันบนเครื่อง ใช้ค่าที่ตั้งในเครื่องแทน
- … ยังไม่ตรวจ
คำอธิบายเครื่องมือไม่มีคำสั่งแอบแฝง
รันในเครื่องคุณ เราอ่านรายการเครื่องมือได้เฉพาะตัวที่มี endpoint บนอินเทอร์เน็ต
พูดคุย
ถาม แชร์เคล็ดลับ หรือแจ้งว่าใช้ไม่ได้ เรียงตามที่คนกดว่ามีประโยชน์
ยังไม่มีใครโพสต์ ถามหรือแชร์เป็นคนแรกได้เลย
ข้อความในส่วนนี้เขียนโดยผู้ใช้ ไม่ใช่ทีม PopNx
รีวิวจากผู้ใช้
ยังไม่มีรีวิว
เทียบกับตัวอื่นในหมวด เครื่องมือนักพัฒนาi
- ดาวมากกว่า 91% ของอีก 5846 ตัวในหมวดนี้
- ส่งรุ่นใหม่เข้า registry ล่าสุดกว่า 42% ของอีก 5846 ตัวในหมวดนี้
- ผลตรวจเบื้องต้นดีกว่าหรือเท่ากับ 100% ของอีก 5846 ตัวในหมวดนี้
เทียบกับทุก server ที่ยังใช้งานในหมวดนี้ทั้งทะเบียน ดาวนับเฉพาะเมื่อผู้ลงทะเบียนเป็นเจ้าของ repo
คำถามที่พบบ่อย
Execkit ปลอดภัยไหม?
จากการตรวจเบื้องต้นของเรา ผ่าน 3 จาก 3 ข้อที่ตรวจได้ เรายังไม่ได้อ่านโค้ด ก่อนใส่กุญแจหรือ token ให้ดูว่า server ขอสิทธิ์อะไร และเลือกกุญแจที่ทำได้เท่าที่จำเป็น
ต้องใช้กุญแจหรือรหัสอะไรบ้าง?
registry ไม่ได้ระบุว่าต้องใช้กุญแจ แต่บางตัวจะขอให้ล็อกอินตอนใช้ครั้งแรก
ตัวนี้รันบนเครื่องหรือบนคลาวด์?
รันบนเครื่องของคุณ โปรแกรม AI จะเปิด server ขึ้นมาเองเมื่อใช้ ข้อมูลไม่ต้องผ่านเซิร์ฟเวอร์ของผู้ทำ (ยกเว้นตัวที่ไปเรียกบริการออนไลน์ต่อ)
ยังมีคนดูแลอยู่ไหม?
repo บน GitHub มีการแก้โค้ดล่าสุด 2 เดือนที่ผ่านมา และส่งรุ่นล่าสุด (0.10.1) เข้า registry 2 เดือนที่ผ่านมา
ใช้กับโปรแกรมไหนได้บ้าง?
โปรแกรมที่รองรับ MCP เช่น Claude Desktop, Claude Code, Cursor และ VS Code ตัวนี้ต้องมี Python (uv) ในเครื่องด้วย
ตัวอื่นในหมวดเดียวกัน
server หมวดเดียวกันจากผู้ทำคนอื่น เรียงตามดาว
อ่านการ์ด:↓ ดาวน์โหลดต่อสัปดาห์i★ ดาว GitHubiสามเสา: รีวิว · ผลตรวจ · การใช้งานiอัปเดต = วันที่ส่งรุ่นล่าสุดเข้า registryi
Serena MCP: the IDE for your agent
A powerful toolkit for coding, providing semantic retrieval and editing capabilities.
README จากผู้ทำ
เปิดอ่าน README
ส่วนนี้คัดจาก repo ของผู้ทำตามต้นฉบับ PopNx MCP ไม่ได้ตรวจหรือรับรองเนื้อหา ตัด HTML รูปภาพ และสคริปต์ออกแล้ว ลิงก์จะพาออกนอกเว็บ
execkit
Persistent, structured shell sessions for AI agents, on your laptop, your servers over SSH, and your Docker containers.
What you get that a built-in agent shell doesn't:
- Persistent sessions on local, SSH and Docker.
cdand env carry across calls, and every command returns a structured result: split stdout/stderr, exit code, duration, cwd. - Output that protects the agent's context. Secrets are redacted before the model sees them, and output budgets (
tail,head,grep, a char cap) keep a noisy build from flooding the context window. - An audit trail, a live viewer, and undo. Every command can go to a JSONL audit log, you can watch sessions live in a terminal or browser (above), and remote sessions can checkpoint and restore the workspace files.
Install
Zero-install, with uv. Add this to your MCP client config:
{ "mcpServers": { "execkit": { "command": "uvx", "args": ["execkit-mcp"] } } }
Or install it and let execkit print the config for your client:
pip install execkit-mcp && execkit-mcp setup claude # or: cursor | gemini | codex | vscode | windsurf
Then execkit-mcp doctor checks your setup. More options (prebuilt binary, cargo install, building from source) are in the Quickstart.
Status: early 0.x. The API may change between minor versions. Read Limitations before pointing it at anything important.
Where it fits
execkit complements your agent's built-in shell or sandbox; it does not replace it. Use it when the agent needs to work on a remote host or inside a container, when you want a record of what ran, or when you want to undo file changes on a remote workspace.
The agent is the adversary. The LLM driving execkit can be prompt-injected by anything it reads, so execkit contains its own caller: a command passes the policy fence *before* it runs, secrets are redacted *before* output returns, and a changed SSH host key fails loudly instead of reconnecting into a MITM.
flowchart LR
A([AI agent]) -->|command| F{policy fence} F -->|blocked| X([rejected, never runs]) F -->|allowed| T[transport: local / SSH / Docker] T --> O[raw output] O --> R[redact secrets, bound output] R --> E([structured ExecResult]) E -.-> A
Use it from an agent (MCP)
The agent gets session_create (local, ssh, or docker), session_exec, session_list and session_destroy, plus session_checkpoint / session_checkpoints / session_restore for remote undo.
State persists across calls, and every result is parsed, not scraped from a terminal:
// session_exec {"command": "cd /app && npm ci"} -> { "exit_code": 0, "cwd": "/app" }
// session_exec {"command": "npm run build"} // cwd is still /app // -> { "stderr": "Error: Cannot find module 'webpack'", // "exit_code": 1, "duration_ms": 3420, "cwd": "/app", // "truncated": false, "timed_out": false }
Commands time out after 120 seconds by default (timeout_secs per call, up to 3600). On timeout execkit interrupts the command with Ctrl-C and returns timed_out: true with exit code 124. The session keeps its cwd and env.
See crates/execkit-mcp/README.md for the operator security settings (host-key verification, key dir, audit, session limits).
Watch what the agent does
Set EXECKIT_MCP_AUDIT_DIR and every session is recorded. execkit-mcp watch shows it live in the terminal, and execkit-mcp watch --serve --open opens the read-only browser viewer shown at the top.
Search a transcript with / and jump between errors. | Rename, pin or keep a session, export it, or take a screenshot. Blocked commands show inline. |
Use it as a library
[dependencies]
execkit = "0.9" # local + SSH + Docker
execkit = { version = "0.9", default-features = false } # local + Docker only (no SSH; no russh/tokio)
use std::time::Duration;
use execkit::{Policy, Session};
fn main() -> Result<(), execkit::Error> { let mut s = Session::local()? .with_policy(Policy { allow: vec![], deny: vec!["rm".into()] }) .with_timeout(Duration::from_secs(60));
let r = s.exec("echo hi; echo err 1>&2; cd /tmp")?; // r.stdout == "hi" r.stderr == "err" r.exit_code == 0 r.cwd == "/tmp" println!("{} (exit {})", r.stdout, r.exit_code);
let r = s.exec_with_timeout("sleep 30", None, Duration::from_secs(1))?; // r.timed_out == true r.exit_code == 124; the session is still usable Ok(()) }
Runnable examples: cargo run --example local, EXECKIT_SSH="user:password@host:22" cargo run --example ssh, and EXECKIT_DOCKER= cargo run --example docker.
Python
The same sessions from Python. pip install execkit (native bindings, no Rust toolchain needed):
from execkit import Session
with Session.local() as s: r = s.exec("echo hi; echo err >&2; cd /tmp") print(r.stdout, r.exit_code, r.cwd, r.stderr) # hi 0 /tmp err
See crates/execkit-py/README.md.
What's in the box
- Persistent, stateful sessions over local PTY, SSH, or Docker. SSH accepts host aliases from your
~/.ssh/config. - Structured `ExecResult`: split stdout/stderr, exit code, duration, cwd,
truncated,timed_out. - Base64 command framing. Comments, heredocs,
!, trailing&, syntax errors and long commands do not hang the session. - Timeouts that keep the session. A timed-out command is interrupted and the session carries on.
- Secret redaction of common token shapes (AWS, GitHub, GitLab, Slack, Stripe, Google, Anthropic, OpenAI, JWTs, PEM private keys), URL passwords,
password=/token=-style pairs, and values the session assigned to secret-named variables. The echoed command is redacted too. - Output budgets:
tail/head/head+tailby line, agrepfilter with context, and a char cap. Per call or a session default; the result reports what was kept. - Undo for agent actions on remote sessions: snapshot the workspace and restore files if a command goes wrong (needs
giton the remote and an explicit workspace; files only, not side effects). - Audit log and live viewer, plus live MCP notifications to the client.
- Embeddable, never a service:
cargo add, in *your* process; no daemon, no vendor.
Upgrading to 0.9
Breaking changes from 0.8. The details are in Upgrading to 0.9.
- SSH host keys are pinned in
~/.execkit/known_hosts, not~/.ssh/known_hosts. Old pins are not read. The first connection re-pins, or copy them over withmkdir -p ~/.execkit && chmod 700 ~/.execkitthengrep -E '^[^ ]+ SHA256:' ~/.ssh/known_hosts >> ~/.execkit/known_hosts. Old pins were keyed by bare host whatever the port: rewrite a line for a non-22 port as[host]:port, or a later port-22 connection to that host fails as a key mismatch. - stdin is
/dev/nullfor every command, and pagers are set tocat. - The target needs
base64. - A timeout returns exit code 124 with
timed_out: trueand keeps the session, instead of an error that closed it.ExecResulthas a newtimed_outfield. - Session ids look like
a3f9-1_localinstead of1_local. SshConfighas a newconnect_timeoutfield (default 15 s). UseSshConfig::new.
Limitations
- Not a sandbox. The command policy is advisory string matching. It is easy to bypass:
deny: ["curl"]blockscurlbut notenv curl,sudo curlorsh -c curl. The real control is a least-privilege *environment*: run the agent and SSH user with minimal rights. - No interactive input. stdin is
/dev/null, so prompts, REPLs and editors do not work. Use non-interactive flags (sudo -n,apt-get -y). Pagers default tocat, but runninglessorvimdirectly hangs until the timeout and closes the session. Shell history is off. - Timeouts interrupt, they do not kill everything. execkit sends Ctrl-C. A command that ignores Ctrl-C ends the session. For long jobs, run them in the background (
nohup CMD > /tmp/job.log 2>&1 &) and poll the log. - The target needs a POSIX shell and `base64`. Local sessions use
bash. Windows is not supported. - Synchronous core. Fine for typical agent use; not tuned for thousands of concurrent sessions.
- SSH `AcceptAny` host-key mode exists for testing, behind an explicit insecure opt-in. Never use it in production.
Found something rough? Open an issue.
Contributing & security
- Contributions: see
CONTRIBUTING.md. - Found a vulnerability? Follow
SECURITY.md. Please don't open a public issue for security reports.
License
Apache-2.0: embed it freely, including commercially. See LICENSE and NOTICE.