Skip to main content

ws: Your memory, skills and rules, in any AI

ws turns one policy.toml into each AI tool's own config, answers the tools' hooks, and runs headless jobs that leave one complete record each. Your memory, skills and rules live in plain files that you own, so you can change tool or model without starting again.

ws is a small command-line toolkit. The core is Python 3.11 or newer and the standard library only. It runs on macOS and Linux. On Windows it runs inside WSL2.

Install

Run the installer. It checks the machine, installs the ws command with uv or pipx, and runs a smoke test.

curl -fsSL https://raw.githubusercontent.com/Michael-A-Fry/ws/main/install.sh | bash

Or install the package yourself:

pipx install ws-aitoolkit

For other ways to install, including a pinned version, see Install ws.

First command

ws doctor

ws doctor prints one line per check, each with a stable ID. WS0xx checks cover the machine and WS1xx checks cover the roles you set up (runner, model, budget, secrets, memory, notes, scheduler, notify, backup, usage).

Status Meaning
ok The check passed.
warn It works, but something weakens it. Read the fix: line.
unconfigured You haven't set this up yet. This is normal on a new install.
fail Something is wrong. Read the fix: line.

Doctor exits with 1 while anything needs doing, so a new install exits with 1. Run ws init to answer the three setup questions, or ws setup to go step by step. ws doctor --json gives the same report for scripts.

To follow a whole first session, see the first-run tutorial.

Verify

Check which build you have:

ws version --json

The output has version, git_sha, dirty, build_date, python, install_path and install_source. Each release carries a checksum, a build provenance attestation, a Sigstore bundle and an SBOM. To check them, see Verify a release.

Troubleshooting

Problem Fix
Neither uv nor pipx is installed Install one: curl -LsSf https://astral.sh/uv/install.sh | sh. The installer prints the line for your OS.
Python is older than 3.11 Use uv, which fetches a current Python for you.
Native Windows ws runs inside WSL2. Run wsl --install -d Ubuntu-24.04, then run the installer in that shell.
ws isn't found after the install Run uv tool update-shell or pipx ensurepath, then open a new terminal.

For more, see Troubleshoot ws.

Documentation

Start with the documentation map. Pages are grouped as tutorials, how-to guides, explanation and reference (the Diátaxis split).

Page What it covers
Usage Every command, one task each
First run Install, check, set up and run a first task
Install Install options and pinning a version
Verify a release Checksum, attestation, Sigstore bundle
Upgrade and uninstall Move to a new version, or remove ws
Troubleshoot Install and doctor failures
Use the gate Turn the policy into each runner's rules
Use the wall Run a runner inside the sandbox
Approve a command Give a refused call a single-use yes
Store a secret Keep a key where agents can't read it
Apply the Rule of Two Limit what one session can combine
Set a budget Cap spend per month
Send drafts only Let agents draft, never send
Run an eval Compare two setups on your own tasks
The gate How policy becomes enforcement
The wall What the sandbox stops and what it doesn't
Approvals Why an approval is bound and single-use
The broker Why agents never see a secret
The Rule of Two The design rule behind the policy
Budget How caps are counted
Draft-only sending Why ws never sends for you
Known limits What ws doesn't protect against yet
Write-up 1 The design and what we measured
CLI reference Every command and flag
Doctor checks Every check ID
Policy reference Every policy.toml key
Eval reference Task format, graders, metrics
Lab reference The lab machine and the launch matrix
ws version --json The fields of the version report

For contributors: CONTRIBUTING.md, SECURITY.md, SUPPORT.md, CHANGELOG.md and AGENTS.md.

Status

ws is pre-1.0. Commands, JSON output and policy.toml keys can still change between releases, and the CHANGELOG says when they do. Doctor IDs never change meaning once released. Read Known limits before you rely on the wall or the gate.

Licence

ws is Apache-2.0. Contributions need the CLA, signed through a bot on your first pull request.

Metadata

Release files for ws-aitoolkit 0.1.1

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

Source distribution (sdist)

Source distribution for ws-aitoolkit 0.1.1
File Size Uploaded Provenance Actions
ws_aitoolkit-0.1.1.tar.gz 283.6 kB With provenance Details for ws_aitoolkit-0.1.1.tar.gz

Built distribution (wheel)

Table of built distributions (wheels) for ws-aitoolkit 0.1.1
File Interpreter ABI Platform Actions
ws_aitoolkit-0.1.1-py3-none-any.whl Python 3 none any Details for ws_aitoolkit-0.1.1-py3-none-any.whl

Total release size: 601.7 kB

Release files / ws_aitoolkit-0.1.1.tar.gz

Download URL ws_aitoolkit-0.1.1.tar.gz
Size 283.6 kB
Tags Source
SHA-256 checksum
How to use checksums
77e69075b5f7a3047e183469ad6fb1a8493f8afd7f40b18958a6050fc0fe6cec
BLAKE2b-256 checksum
How to use checksums
4151b532f8bc601cccf87b5098fac408c805da8ccd33cc4ea69a4ab48c662ff6
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.16

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.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Oct 31, 2026.

Transparency log

Release files / ws_aitoolkit-0.1.1-py3-none-any.whl

Download URL ws_aitoolkit-0.1.1-py3-none-any.whl
Size 318.1 kB
Tags Python 3
SHA-256 checksum
How to use checksums
e4f814e7a9f1c674085f1f170b0e133b89f3a7e31419a8a2680fb1fb016b6501
BLAKE2b-256 checksum
How to use checksums
eae294b444f17770fc176a1d9b4537f864b8b93f299d63655a0de5ddf3069213
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.16

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.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Oct 31, 2026.

Transparency log

Security for ws-aitoolkit 0.1.1

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.

Full provenance

All 2 files in this release have been uploaded with provenance metadata.

Select from 2 files

Attestation for ws_aitoolkit-0.1.1.tar.gz

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Oct 31, 2026.

Transparency log

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.1 This release

2 release files Full 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