Multi-language code execution against a real directory for AI agents
Project description
agentpad
Execute bash, Python, JavaScript (Node), and SQL against a real project directory—with optional overlay, read-only mode, file-change tracking, and a session run log. Built for AI agents, CI, and local tooling.
Same design in TypeScript (npm) and Python (PyPI / local install).
Install
JavaScript / TypeScript (npm)
npm install agentpad
Requires Node.js ≥ 18. For SQL on Node, the sqlite3 binary must be on your PATH.
Python
pip install agentpad
From a clone (editable):
pip install -e ./python
Requires Python ≥ 3.10. For SQL in Python, the runtime uses stdlib sqlite3 (no sqlite3 CLI required).
Quick start
TypeScript
import { Runtime } from "agentpad";
const rt = new Runtime("./my-project");
const r = await rt.run("python", 'print(open("README.md").read()[:80])');
console.log(r.stdout);
console.log(r.files); // file changes under the workspace
rt.close();
Python
from agentpad import Runtime
rt = Runtime("./my-project")
r = rt.run("python", "print(1 + 1)")
print(r.stdout)
rt.close()
Features
| Capability | Summary |
|---|---|
| Languages | bash, python, javascript, sql |
| Workspace modes | Normal, read-only (readonly: true), or overlay (temp copy + apply() back to disk) |
| File tracking | includeGlobs / excludeGlobs (minimatch) scope which paths appear in RunResult.files |
| Limits | timeoutMs, maxOutputBytes per run or via limits on the runtime |
| Session log | getRunLog(), clearRunLog(), exportRunLogJSON / exportRunLogMarkdown, optional onRun |
| OpenAI tools | asOpenAITool() + executeToolCall({ language, code }) (TS); as_openai_tool / execute_tool_call (Python) |
| Persistence | serialize() / Runtime.deserialize() for overlay state |
Documentation
Hosted on slaps.dev:
| Doc | Contents |
|---|---|
| Overview | Product summary and doc index |
| Getting started | Install, first runs, overlay, read-only |
| Use cases | Agents, testing patterns, stubfetch |
| Configuration | RuntimeOptions, RunOptions, globs, limits, run log |
| API reference | Runtime, types, filesystem adapters, exports |
| Security | Threat model, workspace boundaries, subprocess behavior |
| Python notes | Node vs Python differences |
Source
Package and issue tracker: github.com/vgulerianb/agentpad (canonical repo). The slaps.dev monorepo may carry a vendored copy of this tree for the website and doc sync scripts—it is not the package’s primary repository URL on npm/PyPI.
License
Apache-2.0
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file agentpad-0.1.0.tar.gz.
File metadata
- Download URL: agentpad-0.1.0.tar.gz
- Upload date:
- Size: 6.7 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: Hatch/1.16.5 cpython/3.14.3 HTTPX/0.28.1
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
16663544411c3046a8e54bac2e4121e57e9fa4780641377e4be926b241217f83
|
|
| MD5 |
3fe25f416300b7a6441893a1d91744a8
|
|
| BLAKE2b-256 |
25f2c23b54e9135addb3299b730b7eafffe5700cbebbd0839bb76532425d2f07
|
File details
Details for the file agentpad-0.1.0-py3-none-any.whl.
File metadata
- Download URL: agentpad-0.1.0-py3-none-any.whl
- Upload date:
- Size: 8.4 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: Hatch/1.16.5 cpython/3.14.3 HTTPX/0.28.1
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
d6fa720d48cfc1b11ea2b3e589b69d44e4fdeed5e01ee2c1b46fc2daca7b027c
|
|
| MD5 |
0e85f7f586f8228f5358834165b93438
|
|
| BLAKE2b-256 |
64f2957b155c48b71f4d19bf039c59361c164101c0c49a7f2874534d84e0d472
|