Docs
Coding agents
Set up Claude Code, Cursor, Codex and other agents to write, check and run Callables functions.
Callables is built to be driven by coding agents such as Claude Code, Cursor, Codex and GitHub Copilot. Functions are plain Python, the SDK ships its own guide, and every CLI command has machine-readable output.
Set up a project for agents
Run this in the repo:
pip install callables
call initcall init writes:
.claude/skills/callables/SKILL.md: the full guide to writing Callables functions, as a Claude Code skill.- A Callables section in
AGENTS.md, which Cursor, Codex, Copilot and most other agents read. It's also added toCLAUDE.mdif the repo has one. - An example function in
automations.py, unless the repo already has@deployfunctions.
Run call init again after upgrading the SDK to refresh the instructions. Your own files, and the rest of AGENTS.md and CLAUDE.md, are left alone.
The loop an agent follows
- Write or change a function decorated with
@deploy. - Run
call check --json. It prints every problem a deploy would hit, with a fix for each, and exits with code 1 if the deploy would fail. - Run
call local <name> -i key=value --jsonto try the function with real inputs. It prints one JSON object withok,value,files,errorandfield_errors. The function's own prints go to stderr. - Commit and push. Every push to the connected branch deploys.
A prompt to start with
Paste this into your agent, with your own script in place of the example:
Turn scripts/refund.py into a Callables function my support
team can run from a web form. Read the Callables guide first
(call docs, or https://callables.app/llms.txt). Use Literal
for fixed choices, declare API keys as secrets, return a
table or Markdown, and run call check and call local before
you finish.Docs for agents
These docs are published in formats agents read directly:
- /llms.txt: an index of every page, with a one-line summary each.
- /llms-full.txt: every page in one Markdown file.
- Any page as Markdown: add
.mdto its URL, for example /docs/inputs.md. Requests that sendAccept: text/markdownget Markdown from the normal URL. call docsprints the guide that ships with the installed SDK, so it always matches the version in use, even offline.
Rules agents should follow
- Read secrets with
os.environinside the function. Never hard-code keys or take them as inputs. - Keep import-time code free of side effects: every module that uses
callablesis imported when the platform builds. - Annotate every input and the return type. The type hints are the form and the result display.
- Don't add
callablestorequirements.txt. - Raise
ValueErrorwith a message written for the person running the function. They see the message, never the traceback.