An agent automation framework based on Codex/Claude Code
Project description
AIBaton
Headless Agent Automation — Python wrapper for codex/claude CLI, enabling arbitrarily complex agent automation/workflows through programmable prompts.
Features
- Prompt-Oriented Programming — Natural language prompts as Python code, seamlessly interact with agents
- Skill Support — Use skills to convert intent into aibaton code, making complex tasks more controllable
- Loop Detection — Built-in iterative optimization (
loop_max) - Response Parsing — Parse agent results with semantic options using
parse(options)
Use Cases
- Repetitive Tasks — Batch tasks that reuse the same prompt workflow for agent interaction
- Context Explosion Tasks — Tasks with extensive context where agents miss too many details, requiring finer-grained control
- Automated Workflows — Build workflows directly on agents, implement arbitrarily complex logic with simple Python syntax
Not Suitable For
- Non-Repetitive Tasks — No need to script for repeated use
- Complex Tasks Requiring Step-by-Step Confirmation — Difficult to pre-define all scenarios via script, requires human confirmation at each agent stage
Example
Install the aibaton SKILL using codex, then enter the following prompt:
$aibaton Find Go code files over 300 lines in the project and optimize them, extract redundant code into sub-functions following DRY principles, and update references in other files.
Output executable script:
from aibaton import run, set_default
import os
set_default(provider="codex", dangerous_permissions=True)
prompt = """Review the current file code and optimize, extract redundant code into sub-functions following DRY principles, and update references in other files."""
def get_go_files(root_dir: str, min_lines: int = 0) -> list[str]:
go_files = []
for dirpath, _, filenames in os.walk(root_dir):
for f in filenames:
if f.endswith('.go'):
fpath = os.path.join(dirpath, f)
if min_lines <= 0 or sum(1 for _ in open(fpath)) > min_lines:
go_files.append(fpath)
return go_files
if __name__ == '__main__':
par_dir = '/app/banbot'
for fpath in get_go_files(par_dir, min_lines=300):
run(f"File path: {fpath}\n\n{prompt}", cwd=par_dir, add_dirs=[par_dir], stream=True)
Run the script as prompted.
More Complex Task Example
After codex uses aibaton skill, output executable script: work_flow.py
Installation
pip install aibaton
# or
uv pip install aibaton
License
Apache 2.0
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 aibaton-0.1.2.tar.gz.
File metadata
- Download URL: aibaton-0.1.2.tar.gz
- Upload date:
- Size: 23.8 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: uv/0.9.26 {"installer":{"name":"uv","version":"0.9.26","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"22.04","id":"jammy","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":null}
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
2def246d72a20b6dde278e89ebc8e84712d2ace996ff26b6bfc993e63a574861
|
|
| MD5 |
ce159e7378c09440fe2af77125459879
|
|
| BLAKE2b-256 |
5024eb43d726e9bb4cb809b0835a1e1a186bdc6bc4a3e7743ca7e4c5c988fee6
|
File details
Details for the file aibaton-0.1.2-py3-none-any.whl.
File metadata
- Download URL: aibaton-0.1.2-py3-none-any.whl
- Upload date:
- Size: 25.5 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: uv/0.9.26 {"installer":{"name":"uv","version":"0.9.26","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"22.04","id":"jammy","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":null}
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
4635d7669f4ba7ea282ba5db8f6dfabfcf4c2d34f92bf75cdad1a459f388400f
|
|
| MD5 |
4dc8d9ac9efb3541a29e3ce614d44a8e
|
|
| BLAKE2b-256 |
0c288683062a6996319276d990510912496887ca3b4c9b45eac5e9d961a9aee1
|