Skip to main content

assh

assh is an agentic SSH toolkit for stateful, token-efficient remote execution.

assh provides a typed Python package and CLI for:

  • repo and global target resolution
  • stateful remote execution with output shaping
  • environment-set injection
  • reusable workflow scripts
  • Docker and Kubernetes helpers
  • SSH-driven remote worker deployment and task lifecycle management

Status

v0.1.0 is the first MVP release.

The current release includes:

  • async-first SSH transport with persisted remote working directory state
  • JSON, XML, and Rich output from a shared canonical result model
  • repo-local and global SQLite-backed target and env-set state
  • push and fetch helpers for remote file transfer
  • deployable remote worker support for long-running task lifecycle control
  • automated scenario coverage derived from Astra and Nexus workflows
  • a guarded real-VM validation suite exercised against root@192.237.244.107

Install

Local development

uv sync --group dev
uv run assh --help

Install as a tool

uv tool install --from . assh

Quick start

uv run assh init
uv run assh target add vm root@192.237.244.107
uv run assh run "uname -a && whoami && pwd" --target vm

Persist a remote workspace across commands:

uv run assh chain \
  --target vm \
  --step "mkdir -p /tmp/assh-demo" \
  --step "cd /tmp/assh-demo" \
  --step "printf 'hello from assh\n' > note.txt"

uv run assh run "pwd && cat note.txt" --target vm

Use env sets with automatic redaction:

uv run assh env set deploy APP_ENV production
uv run assh env set deploy API_TOKEN super-secret-token
uv run assh env enable deploy
uv run assh run "printf 'APP_ENV=%s\nTOKEN=%s\n' \"\$APP_ENV\" \"\$API_TOKEN\"" --target vm

Use the remote worker for long-running tasks:

uv run assh worker deploy --target vm
uv run assh task start "printf 'start\n'; sleep 10; printf 'done\n'" --target vm
uv run assh task list --target vm
uv run assh task logs <task-id> --target vm

Validation

Core local checks:

uv run ruff check .
uv run mypy src
uv run pytest
uv build

Guarded real-VM validation:

ASSH_E2E_ENABLE=1 \
ASSH_E2E_TARGET=root@192.237.244.107 \
ASSH_E2E_WORKDIR=/tmp/assh-scenarios \
ASSH_E2E_STRICT_HOSTKEY=accept-new \
uv run pytest -m e2e tests/e2e/test_vm_manual.py -vv

Documentation

Release workflow

  • .github/workflows/ci.yml runs lint, typecheck, tests, and package builds on pushes and pull requests.
  • .github/workflows/release.yml verifies the tagged revision before publishing to PyPI.

Metadata

Release files for assh-toolkit 0.1.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 assh-toolkit 0.1.0
File Size Uploaded Provenance Actions
assh_toolkit-0.1.0.tar.gz 75.4 kB Without provenance Details for assh_toolkit-0.1.0.tar.gz

Built distribution (wheel)

Table of built distributions (wheels) for assh-toolkit 0.1.0
File Interpreter ABI Platform Actions
assh_toolkit-0.1.0-py3-none-any.whl Python 3 none any Details for assh_toolkit-0.1.0-py3-none-any.whl

Total release size: 103.6 kB

Release files / assh_toolkit-0.1.0.tar.gz

Download URL assh_toolkit-0.1.0.tar.gz
Size 75.4 kB
Tags Source
SHA-256 checksum
How to use checksums
7f56e495ff6e3be215bb0cc59770c59550b96f407b9180365aa3a5fda3f5d54e
BLAKE2b-256 checksum
How to use checksums
40c17ebeb1ffde125b179eb4be3b46a57fd2359e1398c5a61fe1a8ad9780f6c9
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via uv/0.10.11 {"installer":{"name":"uv","version":"0.10.11","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}

Release files / assh_toolkit-0.1.0-py3-none-any.whl

Download URL assh_toolkit-0.1.0-py3-none-any.whl
Size 28.2 kB
Tags Python 3
SHA-256 checksum
How to use checksums
0311401fb3d01e277bd235e6565b9411abd4946d1ef55c4b442b9a5c345a3651
BLAKE2b-256 checksum
How to use checksums
869c76067f6ecd70a21ee8ffc131957e2b526405a4f9f4795f8fb16fc982a72a
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via uv/0.10.11 {"installer":{"name":"uv","version":"0.10.11","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}

Security for assh-toolkit 0.1.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.

To learn more about protecting yourself from malicious actors, visit our package security documentation.

Release history Release notifications | RSS feed

This release

0.1.0 This release

2 release files No provenance

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