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-5.0.0.tar.gz (66.2 kB view details)

Uploaded Source

Built Distribution

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

clawagents-5.0.0-py3-none-any.whl (47.2 kB view details)

Uploaded Python 3

File details

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

File metadata

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

File hashes

Hashes for clawagents-5.0.0.tar.gz
Algorithm Hash digest
SHA256 3af1ccf7edd0f8ec12dffbec527c5b7260efbffd5727f9108627f292e964aeab
MD5 220ab6733c017d81b7332195190c18cd
BLAKE2b-256 d6d4ffb815c3704e694fdfbdec50d2de9bf4b921f73fbdadde24044c4c0b8e91

See more details on using hashes here.

File details

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

File metadata

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

File hashes

Hashes for clawagents-5.0.0-py3-none-any.whl
Algorithm Hash digest
SHA256 b2c594a55e4692fcd521e840c59db2272a15120fb4ceb9db2f72d36124173230
MD5 4b82414399e67038b1a8a8c855c84ac1
BLAKE2b-256 8bae5e351ed38c05c97f2753e277e54fa6e9012134566e4b4c6594f7933d7f6c

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