Psi CLI
psi is the user-facing command line for setting up and running PSI packages
locally.
Install
python -m pip install prosi-psi-cli psihub lllm-core sssn
For OS keyring storage, install the optional secure extra:
python -m pip install "prosi-psi-cli[secure]"
Initialize Local Credentials
Packages can declare launch-time API key requirements in psi.toml:
[requirements.api_keys]
OPENAI_API_KEY = "OpenAI-compatible model access."
ANTHROPIC_API_KEY = "Claude model access."
psi init checks the selected package and guides setup:
psi init packages/analyst-tactics
By default, psi uses the OS keyring when available and falls back to a local
.env.local file. You can choose explicitly:
psi init packages/analyst-tactics --credentials keyring
psi init packages/analyst-tactics --credentials env --env-file .env.local
For scripts or CI setup, pass values without echoing them back in command output:
psi init packages/analyst-tactics \
--credentials env \
--env-file .env.local \
--set OPENAI_API_KEY=sk-...
Common provider names follow the usual Python ecosystem conventions:
OPENAI_API_KEY, ANTHROPIC_API_KEY, TOGETHER_API_KEY, GEMINI_API_KEY,
GROQ_API_KEY, MISTRAL_API_KEY, OPENROUTER_API_KEY, COHERE_API_KEY,
HF_TOKEN, TAVILY_API_KEY, and EXA_API_KEY.
Launch A Package
Download a package folder, then launch its primary resource as a FastAPI service:
psi launch packages/analyst-tactics --port 8000
Before importing package code, psi launch checks declared API key
requirements. It reads values from the current process environment, the local
env file selected with --env-file, and the OS keyring unless --no-keyring is
set. Missing keys are reported with a psi init hint.
The launcher reads psi.toml and serves the package's primary resource:
tactics.*resources become LLLM FastAPI tactic services with/run;services.*resources use their FastAPI entrypoint, or fall back to the service's declared tactic when present;channels.*resources become SSSN store services with/channels,/events,/subscriptions,/artifacts, and/snapshots.
Inspect what will be served without starting the server:
psi inspect packages/analyst-tactics
psi inspect --json includes API key readiness without printing secret values.
Launch a specific resource when a package has several services:
psi launch packages/society-sentinel --resource services.sentinel_api --port 8130
Direct Python entrypoints work too:
psi launch my_package.service:create_app --port 8000
psi launch is intentionally a local server starter. PsiHub owns package
validation, cards, downloads, and metadata; AAAX owns higher-level strategy
composition.
Metadata
Release files for prosi-psi-cli 0.1.2
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| prosi_psi_cli-0.1.2.tar.gz | 18.4 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| prosi_psi_cli-0.1.2-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 36.7 kB
Release files / prosi_psi_cli-0.1.2.tar.gz
| Download URL | prosi_psi_cli-0.1.2.tar.gz |
|---|---|
| Size | 18.4 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
3d05186a521b57c6d8f85d3337ffed0d1dcaed0633e0e93d7cf8de29444798ab
|
|
BLAKE2b-256 checksum How to use checksums |
85f2ef68530bf6e57ba7b44a29e9b8acf5dfee452bde710fde96570b9cbad01c
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/6.2.0 CPython/3.14.3
|
Release files / prosi_psi_cli-0.1.2-py3-none-any.whl
| Download URL | prosi_psi_cli-0.1.2-py3-none-any.whl |
|---|---|
| Size | 18.4 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
0054f368825a79918c78904e2cebcc34a08fdc82f61b819c17b3e7f71cd75b40
|
|
BLAKE2b-256 checksum How to use checksums |
6c40302445353dd43da678a076e39b44765fae1d073d837c986787c01494905e
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/6.2.0 CPython/3.14.3
|