CodeShield: Autonomous Code Execution Engine
Deterministic, Isolated, and Self-Healing Python Execution Runtime for AI Agents.
This open-source engine executes Python code generated by LLMs inside a disposable, isolated sandbox, validates it statically with the Python ast module, and recovers from runtime errors through a deterministic self-healing loop backed by local heuristics and plug-and-play LLM-guided patch generation (OpenAI, Anthropic Claude, DeepSeek, Ollama, Google Gemini).
Comparison
| Feature | Vanilla subprocess |
Docker Container | CodeShield (This Engine) |
|---|---|---|---|
| Startup Overhead | ~5 – 10 ms | ~1,500 – 3,000 ms | Sub-second (~30–250 ms via uv) |
| Isolation Mechanism | None (Host Process) | Container Namespaces / cgroups | Ephemeral Virtualenv (tempfile + uv) |
| AST Security Gate | ❌ None | ❌ None | ✅ Static AST inspection (os.system, eval) |
| Silent Failure Detection | ❌ None | ❌ None | ✅ Regex scanning for empty DataFrames/NaNs |
| Self-Healing Loop | ❌ None | ❌ None | ✅ 3-Tier Traceback Diagnosis + LLM Patch (Any Provider) |
Architecture
[LLM Generated Code]
│
▼
[AST Static Gate] ──(Syntax/Security Violation)──► [Validation Error Report]
│ (Passed)
▼
[uv Isolated Sandbox] ──(Runtime Error/Silent Failure)──► [Traceback Classifier]
│ │
│ (Clean Execution: exit 0) ▼
▼ [LLM Self-Healing (Any Provider) / Local Heuristic]
[Verified Output (JSON)] ◄──(AST Validated Patch)─────────────────┘
Key Features
1. Ephemeral Sandboxing with Dual-Mode Backend
- Primary:
uv venvfor ultra-fast environment creation and package installation. - Fallback: native
python -m venv+pipwhenuvis unavailable, so the engine works out of the box on any machine. - Each execution lands in its own temporary workspace that is destroyed after use.
2. Deterministic AST Security Gates
The engine parses every snippet with the standard ast module and rejects:
SyntaxErrors before execution.- Bare
except:/except Exception:/except BaseException:handlers. - Calls to dangerous parametrizable functions:
eval(),exec(),compile(). - Calls to system/subprocess primitives:
os.system(),subprocess.call(),subprocess.run(),subprocess.Popen().
3. Silent Failure Detection
Even when a process exits with 0, the engine flags suspicious output patterns such as:
empty DataFrameall NaNTracebackPipeline failedFatal Error
4. Model-Agnostic Self-Healing Loop
AST Validation ──► Sandbox Execution ──► Traceback Classification ──► Patch ──► Re-run
(3 attempts max)
- Local heuristic fallback: handles
NameError,ImportError,ModuleNotFoundErrorby injecting safe imports or placeholder definitions. - LLM-guided healing: when an LLM is configured (built-in Gemini Flash by default, or any custom provider via
patch_generator), it asks the model for a corrected version of the code, validates it with the AST gate, and re-executes the patched snippet.
Quickstart
Installation
# Install from PyPI
pip install codeshield-runtime
# Install with all extras (LLM + Dev tools)
pip install "codeshield-runtime[llm,dev]"
# Or clone for development
git clone https://github.com/AlgorithmicMind/codeshield.git
cd codeshield
# With uv (recommended)
uv venv
uv pip install -e ".[test,lint,llm,dev]"
# Or with pip
python -m venv .venv
.venv\Scripts\activate # Windows
pip install -e ".[test,lint,llm,dev]"
Offline Usage (No API Key)
from codeshield.loop import SelfHealingEngine
engine = SelfHealingEngine(use_llm=False)
with engine:
result, diagnosis = engine.run("print('hello world')")
print(result.stdout)
Model-Agnostic Self-Healing (Plug-and-Play)
CodeShield is not locked into a single LLM. Pass any Python callable as the patch_generator to use OpenAI, Anthropic Claude, DeepSeek, Ollama, LiteLLM or your own service:
from codeshield.loop import SelfHealingEngine
def custom_openai_patcher(code: str, diagnosis) -> str:
# Any LLM call (OpenAI, Anthropic, DeepSeek, Ollama, LiteLLM)
response = client.chat.completions.create(
model="gpt-4o-mini",
messages=[
{
"role": "user",
"content": f"Fix this code:\n{code}\nError: {diagnosis.message}",
}
],
)
return response.choices[0].message.content
engine = SelfHealingEngine(patch_generator=custom_openai_patcher)
Zero-Config Self-Healing with Gemini Flash
For the built-in zero-config experience, create a .env file from .env.example:
GEMINI_API_KEY=your_key_here
GEMINI_MODEL=gemini-3.7-flash
from dotenv import load_dotenv
from codeshield.loop import SelfHealingEngine
load_dotenv()
engine = SelfHealingEngine()
with engine:
result, diagnosis = engine.run('print("Result: " + 42)')
print(result.stdout) # Result: 42
Run the included demo:
python demo.py
CLI Usage
Execute any Python file directly from the terminal with the built-in CLI:
python -m codeshield run script.py
python -m codeshield run script.py --timeout 30
python -m codeshield run script.py --llm # try LLM self-healing if configured
python -m codeshield run script.py --no-llm # force local fallback
🤖 Agent Tool Integration (LangChain, CrewAI, OpenAI, Gen AI)
from codeshield import create_code_execution_tool
# Pass the tool directly to your agent
tools = [create_code_execution_tool()]
create_code_execution_tool() returns a ready-to-register execute_python_code(code: str) -> str function. It runs the provided Python in a self-healing sandbox and returns either the stdout or a structured error report with error_type and stderr.
Verified Examples
The examples/ folder contains ready-to-run recipes that have been executed and verified:
01_basic_sandboxing.py: isolated execution with timing measurements.02_security_gatekeeper.py: AST rejection of unsafe code.03_llm_healing_workflow.py: self-healing workflow with an LLM or local fallback.04_agent_tool_dropin.py: end-to-end agentic tool-calling workflow with dynamic code generation.
python examples/01_basic_sandboxing.py
python examples/02_security_gatekeeper.py
python examples/03_llm_healing_workflow.py
python examples/04_agent_tool_dropin.py
Running Tests & Lint
The suite currently has 50 tests with >82% code coverage on src/codeshield.
ruff check src tests examples
pytest tests -v --cov=src/codeshield
Enterprise Architecture & Custom Deployments
This repository ships the core execution and healing engine. For production multi-tenant deployments, the enterprise extension adds:
- Multi-tenant orchestrator with queue-based job scheduling.
- PostgreSQL state persistence for execution history, audit trails and replay.
- Automated billing and token governance (cost caps per tenant, per-execution budgets).
- Prometheus/Grafana observability, RBAC, and signed artifact provenance.
- SLA-backed support and custom agentic architecture consulting.
Want the production-grade version or a tailored integration for your platform?
We offer enterprise licensing, dedicated onboarding and custom agentic-architecture consulting.
License
This project is licensed under the MIT License. See LICENSE for details.
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 codeshield_runtime-0.1.0.tar.gz.
File metadata
- Download URL: codeshield_runtime-0.1.0.tar.gz
- Upload date:
- Size: 25.1 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via:
twine/7.0.0 CPython/3.12.4
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
13a97d6d57c8136e7661079ec78864780567fa2e26228d09888eb04a3c3d6f0c
|
|
| MD5 |
30885ea8024ca3f5044d113d5fd0543c
|
|
| BLAKE2b-256 |
19cb5afdc5d0d0111eac173965c945de45873ef9c932933d087dbce2db670354
|
File details
Details for the file codeshield_runtime-0.1.0-py3-none-any.whl.
File metadata
- Download URL: codeshield_runtime-0.1.0-py3-none-any.whl
- Upload date:
- Size: 24.3 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via:
twine/7.0.0 CPython/3.12.4
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
25fdd138f27e7950436abff4b03f5c5c46bc32470c67cc63c988cc30623468a6
|
|
| MD5 |
a346693eb561d6ac3c97fe276f3c519c
|
|
| BLAKE2b-256 |
e20661b272d34f5659605dff67bf1b5c8076604239094bc77c75c217a331528d
|