Skip to main content

Kache

A standalone desktop window, CLI and MCP server for working on your own paired devices over SSH. Each device runs a proxy; commands, ownership and results are visible in its activity feed.

Install and open

python -m pip install -U kache-ssh
kache

The desktop has device and shell selectors, a terminal, activity, active actors and addressed chat. PowerShell, Bash, cmd and Zsh commands run in that exact installed interpreter, without translation. Closing hides the window in the tray; the dot icon opens it and its menu shows addresses and Exit. kache tui retains the previous Textual interface.

Python 3.10+ is required. Windows Python needs its bundled Tcl/Tk for the window. Headless machines can use CLI, MCP and proxy without opening a window. Opening the desktop starts the proxy if needed; startup registration is explicit: kache service install.

Pair your own devices

Open Kache on both devices. Run kache pair ADDRESS; compare the six-digit code on both screens and accept on the receiving device. Pairing grants broad access as the proxy's OS user, not an agent sandbox. Clients offer only Kache's device key and verify the destination's pinned fingerprint.

kache devices --json
kache run desktop --as codex --actor-id project-a --shell powershell --timeout 30 -- Get-Location
kache run desktop --as codex --detach -- python train.py
kache jobs --json
kache logs J-abc123 -d desktop

Foreground sessions retain variables, cwd and activated environments. The proxy limits them to 32 and expires idle sessions after 30 minutes. Cancellation resets a busy shell. Detached jobs survive disconnection and proxy restart.

Working together

kache actors --json lists active actors, home devices and work across reachable paired devices. Use KACHE_AS and a distinct stable KACHE_ACTOR for each CLI agent. MCP instances have distinct ids. Labels are attribution, not security boundaries.

Starting work on an occupied device returns its owner/task and a generation token. Decide whether to proceed, then retry with --acknowledge TOKEN. New work invalidates old acknowledgements.

kache chat @alice "Please inspect the test report" -d desktop --as bob
kache inbox -d desktop --as alice --json

Unread messages stop an agent's next command/job for review and are shown once. This does not wake an idle AI or guarantee a reply. Delivery is at-most-once; history remains after a lost response. Offline proxies retain mail.

Platform tools

  • Shell-free ls/cat/tail/find/ps/top/gpu/disk/inventory.
  • Hash-checked patch, backups and stale-safe undo.
  • Incremental sync SOURCE DEVICE:FOLDER, optional --watch, per-file atomic staged commits, no remote deletion.
  • Direct copy SOURCE_DEVICE:PATH DEST_DEVICE:PATH, using an existing pairing from source to destination. No payload relay through the controller.
  • Bounded waits for files, log regexes, jobs and ports.
  • Explicit supervised services and interval/daily schedules. Operator stops persist.
  • Line-oriented job stdin, including EOF; not a full PTY.
  • LAN Wake-on-LAN, interactive-desktop screenshots, seven-day health history.
  • Best-effort OpenSSH successful-login visibility, without elevation or audit edits.

Full commands, schemas and limitations: kache guide or src/kache/AGENTS.md.

Updates and compatibility

0.4 uses protocol 2 / JSON schema 2. Update both endpoints. Historical feeds, job files and identities are retained. Gatekeeper/run_order source aliases remain; the preferred names are Proxy/run_command.

kache update all --to-version 0.4.0 --confirm

Updates stage a pinned package in a separate environment, verify imports, activate remotes before the controller, and check the same pinned key/version. Previous environments and jobs remain. Managed activation supports Windows login proxies; privileged boot tasks need explicit operator updates. Do not delete environments while old jobs use them.

MCP and development

kache mcp
python -m venv .venv
.venv/Scripts/python -m pip install -e ".[dev]"
.venv/Scripts/python -m pytest -q

Existing MCP tools remain, plus kache_tool for structured operations. Long-lived MCP and desktop clients reuse pinned connections without retrying commands. kache_screenshot returns an actual PNG image content block to MCP clients.

Tests use temporary identities and loopback proxies, not production startup, pairing, hardware or training. See IMPLEMENTATION.md for validation and release status.

MIT · Simon Malm.

Metadata

Release files for kache-ssh 0.4.0

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for kache-ssh 0.4.0
File Size Uploaded Provenance
kache_ssh-0.4.0.tar.gz 131.3 kB Without provenance Details

Built distribution (wheel)

Table of built distributions (wheels) for kache-ssh 0.4.0
File Interpreter ABI Platform
kache_ssh-0.4.0-py3-none-any.whl Python 3 none any Details

Total release size: 250.6 kB

Release files / kache_ssh-0.4.0.tar.gz

Download URL kache_ssh-0.4.0.tar.gz
Size 131.3 kB
Tags Source
SHA-256 checksum
How to use checksums
63f10a487823847719d0efd9b61ac37eb4cf15456d96f8eba96e6f1ff2b63727
BLAKE2b-256 checksum
How to use checksums
a8205cd558d5ab40d8d0cf494e27dd3c3fbacb0e5737c697868652c82c8bbcab
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.13.1

Release files / kache_ssh-0.4.0-py3-none-any.whl

Download URL kache_ssh-0.4.0-py3-none-any.whl
Size 119.3 kB
Tags Python 3
SHA-256 checksum
How to use checksums
9d3a5b36918c8693be204bf0b521526bef052c3f6a9ec0e99b0fc528e4d825dc
BLAKE2b-256 checksum
How to use checksums
f0520091596cf5ae90ab0f982db4bffa237390ad2e95d969e7837e87b391cc1c
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.13.1

Security for kache-ssh 0.4.0

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

No provenance found

None of the files in this release were uploaded with provenance metadata.

A note on package security

PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page