Skip to content

Capability integrations

The Framework separates capability contracts from environment-backed implementations. everruns-core defines capability, tool, filesystem, egress, and MCP invocation contracts; focused crates own code that touches an interpreter, network transport, local process, or session filesystem.

This keeps a custom host’s dependency and trust boundaries visible in Cargo.toml. It also prevents a core registry from silently granting an execution or network surface.

everruns featureDefaultImplementationEffect boundary
filesystemYeseverruns-integrations-filesystemHost-provided, session-scoped filesystem only
bashkitNoeverruns-integrations-bashkitSandboxed shell; HTTP remains capability-config and egress-policy gated
web-fetchNoeverruns-integrations-web-fetchFetchKit requests through the host egress contract
luaNoeverruns-integrations-luaVendored Lua 5.4 sandbox; also requires FEATURE_LUA=true at runtime
mcpNoeverruns-mcpRemote HTTP MCP through the host egress contract
mcp-stdioNoeverruns-mcpAdds local-process MCP servers and implies mcp

The default is offline: the filesystem capability can only use the session-filesystem implementation supplied by the host. Shell, web, Lua, MCP, and local-process transports require explicit features.

[dependencies]
everruns = { version = "0.17", features = ["bashkit", "web-fetch"] }

Enabling an implementation does not activate it on every agent. Add the matching capability reference to the agent, and retain the documented role, network-access, and runtime feature gates. In particular, Bashkit, web fetch, and Lua remain high-risk capabilities in the hosted product.

Advanced embedders select integrations on everruns-host and build the runtime registry through everruns_host::runtime_capability_registry():

[dependencies]
everruns-core = "0.17"
everruns-host = { version = "0.17", features = ["filesystem", "web-fetch"] }
let registry = everruns_host::runtime_capability_registry();
let egress = everruns_host::runtime_egress_service();
assert!(registry.has("session_file_system"));
assert!(registry.has("web_fetch"));
assert!(!registry.has("bashkit_shell"));
# let _ = egress;

If the host starts from a broader core preset, preserve it and apply the same feature-selected integrations with everruns_host::compose_runtime_capability_registry(registry).

Hosted server and worker composition uses everruns_platform::capabilities::hosted_capability_registry_for_grade with the platform’s environment-capabilities feature. That preset preserves the hosted catalog while keeping the implementations outside core.

Depend directly on a focused crate when you need its public implementation types. The former core paths move as follows:

Former public pathNew public path
everruns_core::FileSystemCapability and filesystem toolseverruns_integrations_filesystem::*
everruns_core::BashkitShellCapability, BashTool, and adaptereverruns_integrations_bashkit::*
everruns_core::WebFetchCapability, WebFetchTool, and bot-auth helperseverruns_integrations_web_fetch::*
everruns_core::LuaCapability and LuaCodeModeCapabilityeverruns_integrations_lua::*
everruns_core::McpCapability and MCP capability-ID helperseverruns_mcp::*
everruns_core::DirectEgressServiceeverruns_http::DirectEgressService
everruns_core::SystemEmailConfig and Resend typeseverruns_platform::*
everruns_core::ModelScoutCapability and OpenRouterWorkspaceCapabilityeverruns_integrations_openrouter_workspace::*
everruns_core::skill::ProcessCommandExecutoreverruns_host::ProcessCommandExecutor with the host process feature

Continue with Configure and author capabilities for agent-level activation or Custom backends for host-level storage and orchestration.