kiari
kiari is a CLI tool for developing and experimenting with qualia-oriented LLM agents.
Installation
pip install kiari
Usage
Start the interactive console:
kiari
Run a one-shot batch prompt:
kiari "hello"
Manage profiles:
kiari profile list
kiari profile new
kiari profile use
Generate an image with the built-in image_generate tool:
kiari -t image_generate "Generate an illustration of a cat reading a book"
Generate a video with the built-in video_predict tool:
kiari -t video_predict "Generate a short video of a cat playing with a ball"
Search the web with the built-in web tool:
kiari -t web "Search the web for the latest Python release"
Operate connected Chrome profiles with the built-in chrome tool:
kiari -t chrome "List Chrome tabs, select example.com, and summarize its current page"
The Chrome tool requires Chrome Bridge 0.4.x. Install and connect its Chrome extension; the SDK reuses or starts the loopback server automatically. Each tool action acquires and releases its own exclusive Chrome Bridge session.
To run the real SDK/extension integration test, connect Chrome Bridge and run:
make chrome_test
The test opens and closes only its own loopback fixture tab. It is marked costly and is
skipped by the normal test suite.
See Chrome Tool and Chrome Bridge for session, target/ref, error, ownership, and SDK update semantics.
FastAPI Mode
Start an automatically reloading development server:
kiari fastapi --chat-model openai
Run multiple production-style workers without reload:
kiari fastapi --fastapi-workers 4 --fastapi-path /agent
The service exposes GET /health and streams agent events as NDJSON from
POST / (or the configured path):
curl -N http://localhost:8000/ \
-H 'Content-Type: application/json' \
-d '{"text":"hello"}'
Authentication defaults to none. Configure Bearer authentication before exposing the
server to an untrusted network, for example with
--fastapi-authenticator 'bearer?api_key=secret' or the corresponding component config.
Request files are resolved by the server; they are not uploaded by this API.
Streamlit Mode
Start the browser chat UI:
kiari streamlit --chat-model openai --history-repository local
The default browser-session authenticator isolates data for the lifetime of one browser
session. For durable multi-user identity, configure Streamlit OIDC in
.streamlit/secrets.toml and start with --streamlit-authenticator oidc (or
oidc?provider=google for a named provider). Secrets stay in Streamlit configuration and
are not copied into kiari profiles or startup payloads.
Each user creates and selects globally unique agent IDs in the sidebar. Agent IDs accept
letters, digits, ., _, and -. Deleting an agent removes its registered identity and
History; generated files and caches are retained.
The sidebar can apply per-session YAML overrides for agent, tool, workflow, prompt, chat, and speech options. Runtime-wide settings such as profiles, plugins, repositories, authentication, loggers, and server options remain fixed at startup.
Watch Mode
Watch file changes:
kiari watch "file?paths=.&include_patterns=*.md"
Watch Pub/Sub:
kiari ext pubsub create-topic --project-id kiarina --topic-id tmp
kiari ext pubsub create-subscription --project-id kiarina --topic-id tmp --subscription-id tmp
kiari watch "pubsub?project_id=kiarina&subscription_id=tmp"
kiari ext pubsub publish-message --project-id kiarina --topic-id tmp --attribute hoge=fuga "hello"
Watch Realtime Database:
DATABASE_URL=https://kiarina-python.firebaseio.com/
kiari watch "rtdb?database_url=$DATABASE_URL&path=/posts/kiarina"
kiari ext rtdb set --database-url $DATABASE_URL --path /posts/kiarina '{"message":"hello"}'
kiari ext rtdb get --database-url $DATABASE_URL --path /posts/kiarina
kiari ext rtdb watch --database-url $DATABASE_URL --path /posts/kiarina
Watch Slack:
CHANNEL_ID=C077QKNDCUR
kiari watch "slack?"
kiari watch --watch-handler slack "slack?"
kiari ext slack post-message --channel $CHANNEL_ID "hello"
kiari ext -v slack get-channel-messages --channel $CHANNEL_ID --limit 1
kiari ext slack watch-channel --channel $CHANNEL_ID
Development
mise run setup
mise run ci
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 kiari-0.2.0.tar.gz.
File metadata
- Download URL: kiari-0.2.0.tar.gz
- Upload date:
- Size: 211.9 kB
- Tags: Source
- Uploaded using Trusted Publishing? Yes
- Uploaded via:
twine/7.0.0 CPython/3.13.14
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
90e7eed5edc20e98ddba39e99b159ecdbcd935738958b6890f6d391e2b231d96
|
|
| MD5 |
1290f595d59713393c04800be646bc12
|
|
| BLAKE2b-256 |
a4d7d559883f3348679ef5efd68794957fee6fdeadd772b25192aced95f840ac
|
Provenance
The following attestation bundles were made for kiari-0.2.0.tar.gz:
Publisher:
release-pypi.yml on kiarina/kiari
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
kiari-0.2.0.tar.gz -
Subject digest:
90e7eed5edc20e98ddba39e99b159ecdbcd935738958b6890f6d391e2b231d96 - Sigstore transparency entry: 2535110788
- Sigstore integration time:
-
Permalink:
kiarina/kiari@15c4d3d868a0a43aed4013504d9abf41f5541d20 -
Branch / Tag:
refs/tags/v0.2.0 - Owner: https://github.com/kiarina
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
release-pypi.yml@15c4d3d868a0a43aed4013504d9abf41f5541d20 -
Trigger Event:
push
-
Statement type:
File details
Details for the file kiari-0.2.0-py3-none-any.whl.
File metadata
- Download URL: kiari-0.2.0-py3-none-any.whl
- Upload date:
- Size: 352.2 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? Yes
- Uploaded via:
twine/7.0.0 CPython/3.13.14
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
012befc2fbea7953518d68a85d4bf2766519705e07a997ba5317eb5a820f5602
|
|
| MD5 |
8df2820f1cf1602d9ef06def997a16d2
|
|
| BLAKE2b-256 |
2539d5b958095d132de1b80382be0e63a4629554b620c5442dd8af0d12043e92
|
Provenance
The following attestation bundles were made for kiari-0.2.0-py3-none-any.whl:
Publisher:
release-pypi.yml on kiarina/kiari
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
kiari-0.2.0-py3-none-any.whl -
Subject digest:
012befc2fbea7953518d68a85d4bf2766519705e07a997ba5317eb5a820f5602 - Sigstore transparency entry: 2535111442
- Sigstore integration time:
-
Permalink:
kiarina/kiari@15c4d3d868a0a43aed4013504d9abf41f5541d20 -
Branch / Tag:
refs/tags/v0.2.0 - Owner: https://github.com/kiarina
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
release-pypi.yml@15c4d3d868a0a43aed4013504d9abf41f5541d20 -
Trigger Event:
push
-
Statement type: