Repository navigation
Releases: jayashankarvr/execkit
Release list
execkit-mcp-v0.10.1
Fixed
- (watch) print each --follow batch in time order
- (viewer) count shown History sessions and sort sessions with no start time last
- (watch) show local times and date lines in the terminal viewers
- (cli) exit cleanly when stdout is closed early
Other
- (changelog) explain the 0.10.0 minor bump and the new ssh session ids
execkit-mcp-v0.10.0
Added
- (viewer) collapsible History section at the bottom of the sidebar
- (viewer) per-command timestamps and transport/host session groups
Fixed
- (mcp) label ssh sessions with the user and port resolved from ssh config
execkit-mcp-v0.9.0
Added
- (cli) setup for codex/vscode/windsurf, fuller help, unique session ids, constant-time viewer token
- (mcp) per-call timeout, session_list, enum schemas, tool annotations, clearer descriptions
- (mcp) resolve ssh host aliases, users, ports and keys from ~/.ssh/config
- [breaking] interrupt and resync on timeout instead of poisoning the session
Fixed
- (mcp) touch a session's last_used when its exec finishes
- (mcp) redact operator-policy-blocked commands in audit and notifications
- (cli,viewer) escape setup snippet paths, make live-viewer run-prefix optional
- (mcp) key session_exec truncation hint on the effective budget
- (mcp) close Host scope on Match, resolve relative IdentityFile against home
- (ssh) [breaking] execkit-managed known_hosts with host:port keys; connect timeout
- (mcp) close dead sessions, actionable errors for unknown sessions, transports and containers
Other
- (mcp) note the last_used/session lock-order invariant at both sites
- port-keyed pin migration, portable mkdir, restore needs git 2.22, absolute execkit link
- (redact) Bearer coverage, code-shaped values, and that redacted output is not file-accurate
- (mcp) say only the first existing SSH key is used, with no fallback
- (dist) MCP registry server.json and publish job, crate metadata, npm pointer README
- README hero and positioning, pip/uvx quickstart, v0.9 behaviour
execkit-mcp-v0.8.0
Added
- (mcp) viewer transcript search, legend filter, copy-id, auto-refresh
- (mcp) viewer status bar persistently shows the selected session's details
- (mcp) viewer history relative times refresh every 30s (no manual refresh needed)
- (mcp) viewer UX - bottom status bar, command-count labels, color legend, action feedback
- (mcp) viewer session screenshot - canvas to PNG
- (mcp) viewer session export - txt/log/md/json
- (mcp) viewer history panel - browse past sessions from the audit dir
- (mcp) GET /sessions + /session/ - dir history, id-validated, no traversal
- (mcp) viewer 3-dots menu - rename/pin/keep + persisted sidebar width
- (mcp) GET/POST /state route - token-gated, validated, no-store
- (mcp) viewer metadata store (validated, capped, 0600 display-only state)
- (mcp) viewer sidebar redesign - transport groups, labels, active, resize, branding
- (mcp) stable+configurable auto-start web endpoint; link by default, opt-in open, reconnect recovery
- (mcp) EXECKIT_MCP_WATCH_WEB auto-starts the browser viewer
- (mcp) watch --serve [--open] - browser-view any audit log
- (mcp) web viewer browser-open helper (per-OS, best-effort)
- (mcp) web viewer page - session sidebar + transcript panes
- (mcp) web viewer HTTP/SSE core - token-gated, loopback, replay+live
- (mcp) web viewer scaffolding - URL token + SSE wire JSON
Fixed
- (mcp) viewer export/screenshot filenames + add blinking favicon
- (mcp) viewer history addresses past sessions by unique file key
- (mcp) valid export/screenshot downloads - defer object-URL revoke, append anchor
- (mcp) inline session rename in the sidebar (replace the prompt dialog)
- (mcp) history title respects alias; clear history selection on reconnect
- (mcp) viewer history - fix stale live-sel on hist click; avoid DOM thrash per SSE event
- (mcp) cap /state body pre-fill to Content-Length; hermetic HOME in test
- (mcp) web viewer resets state on (re)connect so reconnect replay does not duplicate
- (mcp) web viewer renderTranscript scopes the session; dedupe disconnect note
- (mcp) web viewer title tracks the selected session as it streams
Other
- (mcp) document the browser viewer UX (sidebar command counts, colors, status bar, history, actions)
- (mcp) use sort_by_key for /sessions ordering (clippy 1.96 unnecessary_sort_by)
- (mcp) cargo fmt the viewer-ux changes (incl. alpha-ordered module decl)
- (mcp) stabilize web_viewer e2e - non-discarding harness, token I/O off the executor, settle before tool calls
- Merge pull request #29 from blinkingbit-oss/feat/docs-site
- link the docs site from crates.io and PyPI metadata
execkit-mcp-v0.7.2
Added
- (mcp) operator onboarding CLI (--version, --help, setup, doctor) + robust ~ resolution (#27)
execkit-mcp-v0.7.1
Added
- (mcp) per-session audit files, retention, watch dir/follow, and live notifications (#25)
execkit-mcp-v0.7.0
Added
- (mcp) execkit-mcp watch - live read-only session viewer (#21)
execkit 0.6.1: Python SDK
execkit 0.6: now with a Python SDK
This release brings execkit to Python and ships the MCP server as a pip-installable binary, alongside the Rust crates.
Python SDK: pip install execkit
Native PyO3 bindings to the Rust core (no Rust toolchain needed): stateful, structured, safe shell sessions over local shells, SSH, and Docker.
from execkit import Session, Policy
with Session.local(policy=Policy(deny=["rm"]), timeout=30.0) as s:
r = s.exec("cd /app && npm ci")
print(r.stdout, r.exit_code, r.cwd) # split streams, exit code, cwdSession.local()/.ssh(...)/.docker(...)with Pythonic kwargs and a context manager.- Structured
ExecResult(split stdout/stderr, exit code, duration, cwd), secret-redacted and output-bounded. - Per-call output budgets:
exec(cmd, tail=, head=, grep=, max_chars=). - SSH host-key verification secure by default (TOFU
known_hosts);pin=andinsecure_accept_any_host_key=are explicit opt-ins. - Releases the GIL during
exec; fully typed (PEP 561 stubs).
MCP server: pip install execkit-mcp
The MCP server now ships as a pip-installable binary wheel (Linux + macOS):
pip install execkit-mcp
claude mcp add execkit -- execkit-mcpInstall
| Artifact | How |
|---|---|
| Python SDK | pip install execkit |
| MCP server | pip install execkit-mcp, cargo install execkit-mcp, or the prebuilt binary below |
| Rust library | execkit = "0.6" |
Prebuilt execkit-mcp binaries for Linux (x86_64/aarch64, gnu + musl) and macOS (x86_64/arm64) are attached below, or install the latest with:
curl --proto '=https' --tlsv1.2 -LsSf https://github.com/blinkingbit-oss/execkit/releases/latest/download/execkit-mcp-installer.sh | sh0.6.1 supersedes 0.6.0, which published to crates.io and PyPI but had an incomplete binary release.
execkit 0.6.0
0.6.0 introduced the native Python SDK and shipped to crates.io and PyPI:
execkit(Rust) +execkit-mcp(Rust) on crates.iopip install execkit(the SDK) andpip install execkit-mcp(the server) on PyPI
Prebuilt binaries: 0.6.0's binary build did not complete, so the execkit-mcp
prebuilt binaries and the curl | sh installer are in v0.6.1 (a same-day
superset) and later. For 0.6.0 specifically, install via pip install or
cargo install execkit-mcp.
execkit-mcp-v0.5.0
Added
- (mcp) reap idle sessions on create (EXECKIT_MCP_SESSION_TTL, default 30m)
Other
- (mcp) widen active-session TTL margin to 3s (CI flake guard)
- (mcp) document EXECKIT_MCP_SESSION_TTL
- (mcp) SessionEntry with last_used + spawn_blocking destroy drop