Coding Tools Environment#

coding_tools_env is an E2B-backed multi-tool coding environment with explicit filesystem and shell tools. The tool surface is modeled after SETA.

Each episode creates a fresh E2B sandbox. Reset accepts setup and verify commands. Verify commands are used by submit_solution.

Tools#

  • bash(command, timeout=30)

  • read(file_path, offset=None, limit=None)

  • write(file_path, content)

  • edit(file_path, old_string, new_string, replace_all=False)

  • multi_edit(file_path, edits)

  • glob(pattern, path=None)

  • grep(pattern, path=None, include=None)

  • ls(path=".", ignore=None)

  • todo_write(todos)

  • submit_solution()

Quick Start#

from coding_tools_env import CodingToolsEnv

with CodingToolsEnv(base_url="http://localhost:8000").sync() as env:
    env.reset(
        setup=["mkdir -p /home/user/work"],
        verify=["test -f /home/user/work/answer.txt"],
    )
    print(env.call_tool("write", file_path="/home/user/work/answer.txt", content="done\n"))
    print(env.call_tool("submit_solution"))

Local Server#

cd envs/coding_tools_env
E2B_API_KEY=e2b_... uv run --project . server

Docker#

cd envs/coding_tools_env
openenv build -t coding-tools-env
docker run -p 8000:8000 -e E2B_API_KEY=e2b_... coding-tools-env

Configuration#

  • E2B_API_KEY: required when resetting an episode.

  • MAX_CONCURRENT_ENVS: max concurrent sessions (default 4).