Skip to main content

Multi-language code execution against a real directory for AI agents

Project description

execpad

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 execpad

Requires Node.js ≥ 18. For SQL on Node, the sqlite3 binary must be on your PATH.

Python

pip install execpad

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 "execpad";

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 execpad 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

Doc Contents
Getting started Install, first runs, overlay, read-only
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

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

execpad-0.1.0.tar.gz (6.2 kB view details)

Uploaded Source

Built Distribution

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

execpad-0.1.0-py3-none-any.whl (8.1 kB view details)

Uploaded Python 3

File details

Details for the file execpad-0.1.0.tar.gz.

File metadata

  • Download URL: execpad-0.1.0.tar.gz
  • Upload date:
  • Size: 6.2 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: Hatch/1.16.5 cpython/3.14.3 HTTPX/0.28.1

File hashes

Hashes for execpad-0.1.0.tar.gz
Algorithm Hash digest
SHA256 882c73ddd2d104b2d32edba4eabca4ad524fd2e62e4ce70e3430ee9ac657d6bc
MD5 86d3b1cc984c04b0f4891b492bc34b6b
BLAKE2b-256 a67308a40f4ce18ca1a5c4cb450eca3645f156eec06111ac4a6223d5e4328291

See more details on using hashes here.

File details

Details for the file execpad-0.1.0-py3-none-any.whl.

File metadata

  • Download URL: execpad-0.1.0-py3-none-any.whl
  • Upload date:
  • Size: 8.1 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

Hashes for execpad-0.1.0-py3-none-any.whl
Algorithm Hash digest
SHA256 31b07d385a7cb82e3d8c84e886fa818052d096457ebe9811629c1693fe6464f4
MD5 8acea5c9966480a900a6d4d870dbbf88
BLAKE2b-256 4ec437f5581931ba033a23c536aef6434510a05747cd69f68d91c92762b4be6a

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