cyberkat
CyberKat — LLM/agent orchestration on top of CoreKat and TempоKat.
Features
- Canonical I/O envelopes — every agent is
f: AgentInput[TContext] → AgentOutput[TResult]. Seedocs/guides/cyberkat-io.md. - Langfuse-backed prompt management with local-file fallback, a YAML-driven
PromptsRegistry, and acyberkat promptsCLI for sync / upload / delete operations. Seedocs/guides/cyberkat-prompts.md. - Free LLM streaming —
BaseWorkflowinheritstempokat.progress.ProgressTrackerand routes theon_llm_partialsignal intointermediate_results, so every workflow ships token-by-token streaming over the standard SSE endpoint with zero extra plumbing. Seedocs/guides/cyberkat-progress.md. - Provider-aware agent configs with model aliasing (
AliasResolver), client/api-mode prefix mappings, andDynamicAgentConfigruntime overrides. - Pluggable extras — install only what you need:
cyberkat[llm],cyberkat[docs],cyberkat[langfuse],cyberkat[sentry]. - Configuration management via YAML and environment variables (CoreKat).
- CLI:
cyberkat prompts | agents | tikcount | config | version. - Async-first, Pydantic V2 everywhere, no safeguarded imports.
Installation
From the monorepo root:
# Install this package (core only — no LLM SDKs)
uv sync --package cyberkat
# Or install all packages
uv sync --all-packages
Optional extras:
# LLM/agent support (openai-agents, litellm, openai)
uv pip install "cyberkat[llm]"
# Document export (python-docx, htmldocx, markdown-it-py, fpdf2, openpyxl)
uv pip install "cyberkat[docs]"
# Sentry
uv pip install "cyberkat[sentry]"
# Everything
uv pip install "cyberkat[all]"
Progress tracking & streaming
BaseWorkflow inherits tempokat.progress.ProgressTracker, so every
cyberkat workflow exposes the canonical get_progress query and is
visible over /api/workflows/progress and /api/workflows/progress/stream
out of the box. The on_llm_partial workflow signal routes streamed
LLM tokens — emitted by cyberkat.activities.streaming:run_streamed_activity
— into tracker.intermediate_results, giving every cyberkat-based
service a free token-by-token streaming UI over SSE.
See docs/guides/cyberkat-progress.md
for the end-to-end pattern and
docs/projectmanagement/epic-cyberkat-v4.md
for the full design rationale.
Prompt management
Prompts live outside Python source — managed via Langfuse (optional) with local-file fallback and a YAML registry that maps agents to prompts:
cyberkat prompts list
cyberkat prompts sync --label production
cyberkat agents list --url
cyberkat tikcount --agent ConnyCaseSummaryAgent < draft.md
See docs/guides/cyberkat-prompts.md.
Quick Start
Configuration
Generate a default configuration file:
cyberkat config default-config > config.yaml
Edit config.yaml to customize settings. You can also use environment variables with the CYBERKAT_ prefix.
CLI Usage
# Show version information
cyberkat version
# Generate default config
cyberkat config default-config
# Get help
cyberkat --help
Development
Prerequisites
- Python 3.12+
- uv
Setup
cd cyberkat
uv sync
Testing
# Run tests
make test
# Run tests with coverage
make test-cov
# View coverage report
make coverage
Code Quality
# Run all checks (format, lint, type check, tests)
make check
# Auto-fix formatting and linting issues
make fix
# Format code
make format
# Run linter
make lint
# Run type checker
make pyright
Building
# Build wheel
make build
Project Structure
cyberkat/
├── src/cyberkat/ # Package source code
│ ├── __init__.py # Package exports and version
│ ├── main.py # CLI entry point
│ ├── config.py # Configuration schema
│ ├── init.py # Initialization logic
│ └── cli/ # CLI commands
├── tests/ # Test suite
├── make/ # Build system
│ └── managed.mk # Managed make targets
├── Makefile # Main Makefile
├── pyproject.toml # Package metadata and dependencies
└── README.md # This file
VelociKat Maintenance
This project was generated by VelociKat. To check for updates:
velocikat status
velocikat doctor
License
BSD 3-Clause License. See LICENSE for details.
Release files for cyberkat 0.1.4
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| cyberkat-0.1.4.tar.gz | 54.5 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| cyberkat-0.1.4-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 110.4 kB
Release files / cyberkat-0.1.4.tar.gz
| Download URL | cyberkat-0.1.4.tar.gz |
|---|---|
| Size | 54.5 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
9c72858f79a324c7d8b9ffee097e5390609bbe759953423bff7cc4654f2976de
|
|
BLAKE2b-256 checksum How to use checksums |
b641a596ee004e6b0d028d19d1586817598d565f43ba56b65a44924649ce6b0b
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
uv/0.11.32 {"installer":{"name":"uv","version":"0.11.32","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":null}
|
Release files / cyberkat-0.1.4-py3-none-any.whl
| Download URL | cyberkat-0.1.4-py3-none-any.whl |
|---|---|
| Size | 55.9 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
f6aef417783e0ff6745f05e652a23cf14703209fd20755cfd388c153de45c5e1
|
|
BLAKE2b-256 checksum How to use checksums |
9eb2d577424fdb45d916c639f98164a6307e02fd4631c381afd56bb3a390852c
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
uv/0.11.32 {"installer":{"name":"uv","version":"0.11.32","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":null}
|