load config
parses your TOML. validates agent name, model, command. sets defaults for everything else.
forge is a local-first agent runtime. one binary. memory that survives restarts. sandboxing that strips secrets. observation that logs every tool call. MCP servers resolved and started automatically. you write a config file. forge handles the rest.
today you edit json configs for MCP servers. you hope they're secure. you can't see what your agent does. you can't sandbox it. you can't give it memory that persists. you can't run two agents at once. every setup is bespoke, fragile, unobservable.
forge replaces all of that with one config file and one command.
parses your TOML. validates agent name, model, command. sets defaults for everything else.
creates filesystem overlay. strips 22 secret patterns from env (GITHUB_TOKEN, AWS_SECRET_ACCESS_KEY, OPENAI_API_KEY, ...). blocks .ssh, .aws, .env, .gnupg. applies network allowlist.
opens sqlite store. one file per agent. facts persist across restarts. temporal -- remembers when facts were stored.
resolves each server from config. npm packages via npx, git repos, local paths. logs resolution to observer.
spawns the agent process. wires stdout/stderr to log files. process managed by forge -- forge list shows it, forge kill stops it.
every tool call logged to sqlite. search by tool name, agent id, or input. stats per tool. trace replay for debugging.
forge ties the Valtors ecosystem together. 8 tools, each standalone, all wired by forge.
one binary. one config file. everything else is automatic.