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.1.tar.gz (23.6 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.1-py3-none-any.whl (25.3 kB view details)

Uploaded Python 3

File details

Details for the file aibaton-0.1.1.tar.gz.

File metadata

  • Download URL: aibaton-0.1.1.tar.gz
  • Upload date:
  • Size: 23.6 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.1.tar.gz
Algorithm Hash digest
SHA256 1ee790226f92398d57bc18725e88c428403253a25c96b96ec0a789847a852972
MD5 bb92766dcfbd6891c08791183b1b38fb
BLAKE2b-256 d8e5a47f9804e9cb5df8a3fa6abc72d4c932054029ebacf43fec333645596ae7

See more details on using hashes here.

File details

Details for the file aibaton-0.1.1-py3-none-any.whl.

File metadata

  • Download URL: aibaton-0.1.1-py3-none-any.whl
  • Upload date:
  • Size: 25.3 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.1-py3-none-any.whl
Algorithm Hash digest
SHA256 2c6e73f1a31049e12b3769b19577d3ee672e1ea0d34870f02a59efaf502f27eb
MD5 39548426ae930e6207f0e81b6a4e7518
BLAKE2b-256 99564a8341fbf22c75562aca6e303013dd55f3be430ae786d26dd5f0f17b5bff

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