Skip to main content

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

A complex workflow prompt

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


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

aibaton-0.1.2.tar.gz (23.8 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

aibaton-0.1.2-py3-none-any.whl (25.5 kB view details)

Uploaded Python 3

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

Hashes for aibaton-0.1.2.tar.gz
Algorithm Hash digest
SHA256 2def246d72a20b6dde278e89ebc8e84712d2ace996ff26b6bfc993e63a574861
MD5 ce159e7378c09440fe2af77125459879
BLAKE2b-256 5024eb43d726e9bb4cb809b0835a1e1a186bdc6bc4a3e7743ca7e4c5c988fee6

See more details on using hashes here.

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

Hashes for aibaton-0.1.2-py3-none-any.whl
Algorithm Hash digest
SHA256 4635d7669f4ba7ea282ba5db8f6dfabfcf4c2d34f92bf75cdad1a459f388400f
MD5 4dc8d9ac9efb3541a29e3ce614d44a8e
BLAKE2b-256 0c288683062a6996319276d990510912496887ca3b4c9b45eac5e9d961a9aee1

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page