Safe local Linux operations engine with natural-language CLI workflows
Project description
Stoat
Safe local Linux operations engine with a natural-language CLI.
Stoat turns short English requests into constrained local actions like finding files, moving/copying/deleting them safely, launching apps, undoing Stoat-managed changes, and showing recent history. It is terminal-first, Linux-only, and designed around confirmation, auditability, and reversible operations.
Features
- Safe local file operations with confirmation, protected paths, and batch limits
- Natural-language file search with rule-based parsing
- Semantic file intents for categories like movies, pictures, documents, and screenshots
- App launch and close support for Linux desktop workflows
- Read-only system information for disk, memory, and battery status
- Undo and history for Stoat-managed reversible operations
- Pretty JSON output for scripting and future integrations
- Optional diagnostics with
stoat doctor
Quick Start
Prerequisites
- Linux
- Python 3.11+
Installation
# Install Stoat for normal use
pipx install stoat-linux
Optional LLM support is not required for the current rule-based product. If you want the optional parser backend later:
pipx install "stoat-linux[llm]"
Usage
stoat run "open firefox"
stoat run "find my latest download"
stoat run "find all my movies"
stoat run --dry-run "move my latest screenshot to Desktop"
stoat run "copy all my movies to archive"
stoat run --dry-run "move report.pdf from Downloads to Documents"
stoat run "delete old.log from logs"
stoat run "delete the movie avengers"
stoat run "show disk usage"
stoat run "what's using my ram"
stoat history
stoat undo --yes
stoat doctor
From Source
git clone https://github.com/initysl/stoat.git
cd stoat
uv sync --extra dev
# Run from the project environment while developing
uv run stoat run "find report"
# Optional local LLM support while developing
uv sync --extra dev --extra llm
Documentation
- Installation Guide
- Usage Examples
- Current Usage
- Execution Roadmap
- Configuration
- Safety Features
- Release Process
- Changelog
Development
uv sync --extra dev
uv run pytest -q
uv run ruff check stoat tests
uv run black --check stoat tests
uv run python -Im build --sdist --wheel --outdir dist
License
MIT License - See LICENSE for details
Contributing
Contributions welcome. Read CONTRIBUTING.md first.
Project details
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file stoat_linux-0.1.2.tar.gz.
File metadata
- Download URL: stoat_linux-0.1.2.tar.gz
- Upload date:
- Size: 40.9 kB
- Tags: Source
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.12
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
7d06020613c14710e7e014fb6ec9bd1414a02ad1084a8b3b876a28f55be0d8da
|
|
| MD5 |
64d03ca0dfacb785a2108eb1db5d102b
|
|
| BLAKE2b-256 |
1d585ce5adea4bcaa3e2a0b1e2974a728498e8ab0c8f0cf7d378df919e285a10
|
Provenance
The following attestation bundles were made for stoat_linux-0.1.2.tar.gz:
Publisher:
release.yml on initysl/stoat
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
stoat_linux-0.1.2.tar.gz -
Subject digest:
7d06020613c14710e7e014fb6ec9bd1414a02ad1084a8b3b876a28f55be0d8da - Sigstore transparency entry: 1289614315
- Sigstore integration time:
-
Permalink:
initysl/stoat@5c82725a32fe9b51cb39371d707b7c0f8f072660 -
Branch / Tag:
refs/tags/v0.1.2 - Owner: https://github.com/initysl
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
release.yml@5c82725a32fe9b51cb39371d707b7c0f8f072660 -
Trigger Event:
push
-
Statement type:
File details
Details for the file stoat_linux-0.1.2-py3-none-any.whl.
File metadata
- Download URL: stoat_linux-0.1.2-py3-none-any.whl
- Upload date:
- Size: 40.9 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.12
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
6027cf7c5bb07fe85d5c2acd283405afade92a0f85086a536c918d773c1e134d
|
|
| MD5 |
e685ad0357be22bffd6cd43210f95f81
|
|
| BLAKE2b-256 |
6e8e42f1d4e8ceebc602bcf9c9f30882f77a4495e6b33575d60c09fab8517001
|
Provenance
The following attestation bundles were made for stoat_linux-0.1.2-py3-none-any.whl:
Publisher:
release.yml on initysl/stoat
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
stoat_linux-0.1.2-py3-none-any.whl -
Subject digest:
6027cf7c5bb07fe85d5c2acd283405afade92a0f85086a536c918d773c1e134d - Sigstore transparency entry: 1289614446
- Sigstore integration time:
-
Permalink:
initysl/stoat@5c82725a32fe9b51cb39371d707b7c0f8f072660 -
Branch / Tag:
refs/tags/v0.1.2 - Owner: https://github.com/initysl
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
release.yml@5c82725a32fe9b51cb39371d707b7c0f8f072660 -
Trigger Event:
push
-
Statement type: