Skip to main content

Python port of the ClawAgents framework

Project description

ClawAgents Python

A lean, full-stack agentic protocol. ~2,500 LOC.

Quick Start

pip install -e .

Create a .env:

PROVIDER=gemini
GEMINI_API_KEY=AIza...
GEMINI_MODEL=gemini-3-flash-preview
STREAMING=1
CONTEXT_WINDOW=128000
MAX_TOKENS=4096

One-Line Agent

from clawagents import create_claw_agent

agent = create_claw_agent("gemini-3-flash")
result = await agent.invoke("List all Python files in src/")
print(result.result)

With Instruction

agent = create_claw_agent("gpt-5", instruction="You are a code reviewer.")
result = await agent.invoke("Review the code and suggest improvements")

CLI

python -m clawagents --task "Find all TODO comments in the codebase"

API

create_claw_agent(model, instruction, ...)

Param Type Default Description
model str | LLMProvider | None None Model name or provider. None = auto-detect from env
instruction str None What the agent should do / how it should behave
tools list None Additional tools. Built-in tools always included
skills str | list auto-discover Skill directories. Default: checks ./skills, ./.skills, ./skill, ./.skill
memory str | list auto-discover Memory files. Default: checks ./AGENTS.md, ./CLAWAGENTS.md
streaming bool True Enable streaming
on_event callable None Event callback

Built-in Tools

Every agent includes these — no setup needed:

Tool Description
ls List directory with size + modified time
read_file Read file with line numbers + pagination
write_file Write/create file (auto-creates dirs)
edit_file Replace text (supports replace_all)
grep Search — single file or recursive with glob filter
glob Find files by pattern (**/*.py)
execute Shell command execution
write_todos Plan tasks as a checklist
update_todo Mark plan items complete
task Delegate to a sub-agent with isolated context
use_skill Load a skill's instructions (when skills exist)

Hooks (Convenience Methods)

agent = create_claw_agent("gemini-3-flash", instruction="Code reviewer")

# Block dangerous tools
agent.block_tools("execute", "write_file")

# Or whitelist only safe tools
agent.allow_only_tools("read_file", "ls", "grep", "glob")

# Inject context into every LLM call
agent.inject_context("Always respond in Spanish")

# Limit tool output size
agent.truncate_output(3000)

Advanced: Raw hooks are also available for custom logic:

agent.before_llm = lambda messages: messages      # modify messages before LLM
agent.before_tool = lambda name, args: True        # return False to block
agent.after_tool = lambda name, args, result: result  # modify tool results

Auto-Discovery

The factory automatically discovers project files:

What Default locations checked
Memory ./AGENTS.md, ./CLAWAGENTS.md
Skills ./skills, ./.skills, ./skill, ./.skill, ./Skills

Pass explicit paths to override: memory="./docs/AGENTS.md", skills=["./my-skills", "./shared-skills"]

Memory System

Project Memory

Loads AGENTS.md files and injects content into every LLM call. Use for project context.

Auto-Compaction

When conversation exceeds 75% of CONTEXT_WINDOW:

  1. Full history offloaded to .clawagents/history/compacted_*.json
  2. Older messages summarized into [Compacted History]
  3. Last 6 messages kept intact

Environment Variables

Variable Default Description
PROVIDER auto-detect openai or gemini
OPENAI_API_KEY OpenAI API key
OPENAI_MODEL gpt-5-nano OpenAI model
GEMINI_API_KEY Gemini API key
GEMINI_MODEL gemini-3-flash-preview Gemini model
STREAMING 1 1 = enabled, 0 = disabled
CONTEXT_WINDOW 128000 Token budget for compaction
MAX_TOKENS 4096 Max output tokens per response

Testing

pip install -e ".[dev]"
python -m pytest tests/ -v

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

clawagents-4.3.0.tar.gz (64.6 kB view details)

Uploaded Source

Built Distribution

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

clawagents-4.3.0-py3-none-any.whl (46.6 kB view details)

Uploaded Python 3

File details

Details for the file clawagents-4.3.0.tar.gz.

File metadata

  • Download URL: clawagents-4.3.0.tar.gz
  • Upload date:
  • Size: 64.6 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.12.1

File hashes

Hashes for clawagents-4.3.0.tar.gz
Algorithm Hash digest
SHA256 d529cf608948c6d657eec69112d4e68b6ddc1d173349ec240b183e10503d6011
MD5 660eac7ddc49e5411a715b00d8478713
BLAKE2b-256 6fcff7f91d6c5ec9a26d10ff986c173b3eee9c2e8d98c591a6a24d7c7ca81f60

See more details on using hashes here.

File details

Details for the file clawagents-4.3.0-py3-none-any.whl.

File metadata

  • Download URL: clawagents-4.3.0-py3-none-any.whl
  • Upload date:
  • Size: 46.6 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.12.1

File hashes

Hashes for clawagents-4.3.0-py3-none-any.whl
Algorithm Hash digest
SHA256 c02503e0b44cf98574c88e261917926b61701fd2f107c95d186f8b0d5976c1fd
MD5 c53337a41c8101cda4417a7c6d04df78
BLAKE2b-256 8358365b75763ad7faed08d95a8d2cc1108998dda2e07dc43eb07c34fec0a651

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