Agentic orchestration.
Project description
porki
Table of Contents
- Description
- Quickstart
- 2.1 Install
- 2.2 Simple Command
- Installation
- 3.1 Prerequisites
- 3.2 PyPI
- 3.3 From Source
- 3.4 Development Only (uv)
- Test
- CLI Reference
Description
porki is an agentic orchestration runtime for multi-agent workflows. It coordinates orchestrator and agent processes, persists shared state in Redis, and uses an LLM CLI (claude or codex) to plan and execute tasks.
It leverages markdown-based control files: a primary INSTRUCTIONS.md for orchestrator/agent directives and per-agent heartbeat markdown files for live control signals (for example pause/resume-style runtime directives).
Example usage: Systemg Orchestrator
[!WARNING] Designed to run with systemg.
Quickstart
Install
pip install porki
Simple Command
porki --help
Minimal runtime example (orchestrator + agent) with bundled test assets:
porki \
--role orchestrator \
--instructions tests/assets/INSTRUCTIONS.md \
--llm-provider codex \
--llm-cli codex
porki \
--role agent \
--instructions tests/assets/instructions/agent-research.md \
--heartbeat tests/assets/instructions/heartbeat/agent-research.md \
--agent-name agent-research \
--goal-id goal-demo \
--llm-provider codex \
--llm-cli codex
By default, --redis-url is fakeredis:// for local/demo usage.
Installation
Prerequisites
python3.10+systemg(sysgCLI available on PATH)redis(server reachable by--redis-url)- an LLM CLI:
claudeorcodex
PyPI
pip install porki
From Source
git clone https://github.com/ra0x3/porki.git
cd porki
pip install -e .
Development Only (uv)
uv commands are for development workflows (not required for normal runtime use):
uv sync
Test
From repository checkout:
uv run pytest
Without uv:
python -m pip install pytest
python -m pytest
CLI Reference
usage: porki [-h] --role {agent,orchestrator} --instructions INSTRUCTIONS
[--redis-url REDIS_URL] [--log-level LOG_LEVEL]
[--agent-name AGENT_NAME] [--agent-role AGENT_ROLE]
[--goal-id GOAL_ID] [--heartbeat HEARTBEAT]
[--loop-interval LOOP_INTERVAL] [--lease-ttl LEASE_TTL]
[--poll-interval POLL_INTERVAL]
[--heartbeat-interval HEARTBEAT_INTERVAL]
[--instruction-interval INSTRUCTION_INTERVAL]
[--claude-cli CLAUDE_CLI] [--claude-extra-arg CLAUDE_EXTRA_ARG]
[--claude-use-sysg] [--llm-provider {claude,codex}]
[--llm-cli LLM_CLI] [--llm-extra-arg LLM_EXTRA_ARG]
[--llm-use-sysg]
Porki agent/orchestrator entrypoint
options:
-h, --help show this help message and exit
--role {agent,orchestrator}
Process role
--instructions INSTRUCTIONS
Primary instructions file
--redis-url REDIS_URL
Redis connection URL
--log-level LOG_LEVEL
Python logging level
--agent-name AGENT_NAME
Agent identifier when running in agent mode
--agent-role AGENT_ROLE
Agent role identifier when running in agent mode
--goal-id GOAL_ID Goal identifier for the active DAG
--heartbeat HEARTBEAT
Heartbeat file path for agent role
--loop-interval LOOP_INTERVAL
Agent loop interval in seconds
--lease-ttl LEASE_TTL
Lease TTL in seconds
--poll-interval POLL_INTERVAL
Orchestrator poll interval in seconds
--heartbeat-interval HEARTBEAT_INTERVAL
Agent heartbeat file read interval in seconds
--instruction-interval INSTRUCTION_INTERVAL
Agent instructions reload interval in seconds
--claude-cli CLAUDE_CLI
Path to the Claude CLI executable
--claude-extra-arg CLAUDE_EXTRA_ARG
Additional arguments for the Claude CLI
--claude-use-sysg Invoke Claude through `sysg spawn --ttl` to capture
stdout/stderr
--llm-provider {claude,codex}
LLM provider used for orchestration and agents
--llm-cli LLM_CLI Path to provider CLI executable
--llm-extra-arg LLM_EXTRA_ARG
Additional arguments for the selected LLM CLI
--llm-use-sysg Invoke LLM CLI through `sysg spawn` for output capture
Project details
Release history Release notifications | RSS feed
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 porki-0.4.2.tar.gz.
File metadata
- Download URL: porki-0.4.2.tar.gz
- Upload date:
- Size: 54.6 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.13.12
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
2236568ffbb5039b81d49224d8884307899a7f03a85a1bb247b2e18f4e49b082
|
|
| MD5 |
2008258f6dec7b060e7b19c0daf8aba0
|
|
| BLAKE2b-256 |
fc0fc4a7bff333984dcb9a20f68940f817780e8ece43dc33c0a733b4f0ce2d97
|
File details
Details for the file porki-0.4.2-py3-none-any.whl.
File metadata
- Download URL: porki-0.4.2-py3-none-any.whl
- Upload date:
- Size: 40.7 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.13.12
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
ae61742305a359af9ce984165d50d01cb14bfba2012b7f67ff498d72bbfe04b6
|
|
| MD5 |
d0258ea69e7c1426d4f16e2c7fad6dd6
|
|
| BLAKE2b-256 |
6808ebc1c6769820101e5eca44948639bf6a271cb248f76c167e6f27f7d0c772
|