psa-strategy-cli
AI-first command-line interface for PSA strategy storage, logs, and evaluation.
Package/install name: psa-strategy-cli
Command name: psa
Quick start (published package)
Run without installing:
uvx --from psa-strategy-cli psa --version
Install as a tool:
uv tool install psa-strategy-cli
psa --version
Workspace development mode
Run commands from the cli/ directory:
cd cli
Storage model
The CLI persists state inside the current working directory:
.psa/strategies/<strategy_id>/strategy.json.psa/strategies/<strategy_id>/log.ndjson
Directories are created automatically on first write.
JSON mode
All operational commands require --json.
- Success: JSON payload in output stream.
- Error: JSON payload in
stderrwith:error.codeerror.messageerror.details
Commands
Strategy
psa strategy upsert --strategy-id <id> --input <path|-> --jsonpsa strategy list --jsonpsa strategy show --strategy-id <id> --jsonpsa strategy exists --strategy-id <id> --json
Log
psa log append --strategy-id <id> --input <path|-> --jsonpsa log list --strategy-id <id> [--limit <n>] [--from-ts <ts>] [--to-ts <ts>] --jsonpsa log show --strategy-id <id> --log-id <id> --jsonpsa log tail --strategy-id <id> --limit <n> --json
Evaluate (strategy loaded from storage)
psa evaluate-point --strategy-id <id> --input <path|-> --output <path|-> --json [--pretty]psa evaluate-rows --strategy-id <id> --input <path|-> --output <path|-> --json [--pretty]psa evaluate-ranges --strategy-id <id> --input <path|-> --output <path|-> --json [--pretty]
Skill install
psa install-skill <runtime> [--skills-dir /path/to/skills-dir] [--agents-dir /path/to/agents-dir] --json- unknown runtime fallback:
psa install-skill any-runtime --skills-dir /path/to/skills-dir --json
- means standard stream (stdin for --input, stdout for --output).
Examples
Create strategy
cat strategy.json | uv run --package psa-strategy-cli psa strategy upsert \
--strategy-id main --input - --json
Append log entry
echo '{"event":"thesis_updated","note":"reduced risk"}' | \
uv run --package psa-strategy-cli psa log append \
--strategy-id main --input - --json
Evaluate point using persisted strategy
echo '{"timestamp":"2026-01-01T00:00:00Z","price":45000}' | \
uv run --package psa-strategy-cli psa evaluate-point \
--strategy-id main --input - --output - --json
Exit codes
0: success2: CLI argument error3: I/O or JSON parsing error4: validation/domain/storage error1: unexpected internal error
Schema loading
CLI searches request schemas in this order:
PSA_SCHEMA_DIR(if set)- packaged schemas bundled inside the installed
psa-strategy-clidistribution - repository
schemas/directory (development fallback)
Release files for psa-strategy-cli 0.1.3
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| psa_strategy_cli-0.1.3.tar.gz | 25.1 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| psa_strategy_cli-0.1.3-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 57.9 kB
Release files / psa_strategy_cli-0.1.3.tar.gz
| Download URL | psa_strategy_cli-0.1.3.tar.gz |
|---|---|
| Size | 25.1 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
e61680c2b6d48d538fba77b706b20968895063c8e3dfb456efe3a750d81cd390
|
|
BLAKE2b-256 checksum How to use checksums |
ba9d49c74dec0e2efb0bfd67b8cf7583f2425dd76deef41483af47445150a8a2
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
uv/0.10.6 {"installer":{"name":"uv","version":"0.10.6","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 / psa_strategy_cli-0.1.3-py3-none-any.whl
| Download URL | psa_strategy_cli-0.1.3-py3-none-any.whl |
|---|---|
| Size | 32.7 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
96230f10299a54063a06ed7508efb6cf63f17c18645ed8ddedb2962b254a83a8
|
|
BLAKE2b-256 checksum How to use checksums |
9df9afedc2169d39bdb70030ec9ebd2ab6445044ff88b0585efbf2c12b3a42e2
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
uv/0.10.6 {"installer":{"name":"uv","version":"0.10.6","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}
|