Open Interpreter
Open Interpreter · github.com/openinterpreter/openinterpreter
Open Interpreter runs locally under Apache-2.0, stores its config, sessions and memories in open formats under ~/.openinterpreter, works with local open-weight models, and enforces approvals and sandboxing at the OS level. It has no single-action agent export, no identity or message attribution that survives a move, and no guaranteed or tamper-evident action record. Product analytics are on by default and are sent to a project-operated endpoint whenever a login or API-key session exists.
- Apache-2.0 runtime that runs fully locally with Ollama or LM Studio
- Open storage: TOML config, JSONL (zstd) session rollouts, SQLite state
- OS-enforced sandbox, approval policies and network domain allowlists
- Shared standards (AGENTS.md, .agents/skills, MCP, ACP) ease migration
- Credentials held locally in OS keyring or auth.json
- No single-action export of the complete agent
- No owner-controlled agent identity or attributable messages
- Action record neither guaranteed nor tamper-evident
- Analytics enabled by default (opt-out via config)
- Web search depends on provider-hosted tooling
All 34 findings
Rust distribution rust-v0.0.45 (released 2026-09-20), main branch as of 2026-09-27; a fork of OpenAI Codex CLI tracking upstream stable releases. The legacy Python Open Interpreter (0.x, AGPL) was not assessed.
Portable · Can you leave, and take the whole agent with you?
67%- P1Round-trip portability
Not restorable in one action: everything sits in documented local locations, but there is no export or import command, so config, sessions and credentials in ~/.openinterpreter or the OS keyring must be copied by hand, and the docs advise re-authenticating. AGENTS.md and .agents/skills carry over in place.
Partial - P2Complete export
Configuration, instructions, skills, memories, session history and credentials all sit in documented local locations (~/.openinterpreter or the OS keyring, AGENTS.md and .agents/skills), and nothing that defines the agent is held by the project. Gathering them is a manual step.
Pass - P3Independent execution
The Apache-2.0 runtime runs on the owner's machine and can use local providers such as Ollama or LM Studio (`--oss`), so model traffic stays local. No Open Interpreter account is required.
Pass - P4Identity continuity
Counterparts cannot verify that a migrated agent is the same one. The inherited agent-identity crate registers ed25519 keys with the upstream ChatGPT backend for task authorization, so that identity depends on the backend rather than traveling with the agent.
Fail - P5No kill switch
No license checks or remote enable flags were found in the runtime; it is open source and runs with local models without an account. Updates come as releases from the GitHub repository, and existing builds keep working.
Pass - P6Capability independence
Shell execution, file editing, MCP tools, skills, hooks, subagents and memories run in the local runtime and work with any configured provider. Web search is available only 'when the active provider and policy allow it', so switching to a local model can remove that capability.
Partial
Transparent · Can you see everything the agent is, with ordinary tools?
92%- T1Open storage format
Config is TOML, session rollouts are JSONL (older rollouts are compressed with standard zstd), and runtime state uses a SQLite database (state_5.sqlite). All of these can be read without Open Interpreter.
Pass - T2No hidden instructions
The base prompts and harness-emulation prompts are open source in the repository, and injected context such as AGENTS.md and environment context is recorded in the local rollout files. The base instructions can be replaced through config.
Pass - T3No shadow memory
Agent state is local, but analytics events (usage and tool or plugin metadata) are sent by default to a project-operated endpoint (oi-new-api.fly.dev) when a login or API-key session exists. Whether that data is retained or used to build profiles is not publicly documented.
Partial - T4Complete action history
Each session is recorded locally as a rollout file with messages, tool calls, tool outputs and turn context, which moves with ~/.openinterpreter. The owner can switch persistence off (`history.persistence = "none"`).
Pass - T5Readable logic
Skills are SKILL.md folders in .agents/skills, hooks and rules are plain config or scripts, and the runtime itself is published as Rust and TypeScript source.
Pass - T6No third-party influence channel
No advertising, sponsored-content or partner ranking mechanism was found in the runtime or docs. The context contains only the owner's instructions, project files, configured tools and model outputs.
Pass
Auditable · Can you reconstruct exactly what the agent did?
60%- A1No unrecorded actions
Each session's tool calls and outputs are recorded durably in rollout files, but recording is best-effort: nothing holds back a command when its record cannot be written.
Partial - A2Tamper evidence
Rollout JSONL files carry no integrity data, so an edit or deletion would go unnoticed.
Fail - A3Separation from the audited
In the read-only and workspace-write sandbox modes, agent commands can write only inside workspace roots, which normally excludes ~/.openinterpreter. In danger-full-access or `--yolo` mode, nothing stops the agent from modifying its own rollout files.
Partial - A4Readable with ordinary tools
Session history is JSONL, optionally zstd-compressed, and can be read with jq, zstd and a text editor.
Pass - A5Corroborated interactions
Messages between agents are logged as InterAgentCommunication items carrying an item ID and the author and recipient agent paths, so the two sides' records can be matched. Only agents inside the runtime exchange messages this way.
Pass
Verifiable · Can you prove the agent runs what it claims?
40%- V1Open, reproducible runtime
The runtime is open source under Apache-2.0 and builds with Bazel and a Nix flake, but the project does not claim or document reproducible release builds.
Partial - V2Active config is inspectable config
Config comes from readable TOML files, and `/status` and `/permissions` show the active posture. The effective config also depends on CLI `-c` overrides, profiles, environment variables and provider model catalogs, and there is no documented dump of the fully resolved config.
Partial - V3Attributable messages
Recipients cannot verify that a message or action came from this agent under its owner's authority. The only agent keys are registered with the upstream ChatGPT backend, not held by the owner.
Fail - V4Independently checkable record
The rollout files carry no integrity data, so no tool can check that the record is intact.
Fail - V5Comparable state
All state is in local TOML, JSONL and SQLite files under ~/.openinterpreter, so the owner can copy it at two points in time and compare the copies with open tools such as diff, zstd and sqldiff.
Pass
Modifiable · Can you change anything, without asking?
92%- M1Instructions
Project and personal instructions are editable AGENTS.md files, and the base harness and instructions can be switched or overridden through `/harness` and config.
Pass - M2Memory
Memories are optional and off by default. When enabled they are stored locally, can be inspected with `/memories`, and generation and use can be switched off in config. Session history can be deleted or disabled.
Pass - M3Logic
Skills, hooks, rules and subagent definitions are owner-editable files, and the Apache-2.0 runtime itself can be modified and forked.
Pass - M4Tools and permissions
The owner can add any MCP server, plugins and skills, and can scope filesystem and network access with custom permission profiles and exec-policy rules.
Pass - M5Model choice
Any OpenAI-compatible, Anthropic-compatible or local provider (Ollama, LM Studio) can be selected with `/model`. Some surfaces, such as web search, depend on provider-side tooling and may be unavailable with local models.
Partial - M6No gatekeeping
No license checks, paid tiers or approval steps gate any modification. The project is Apache-2.0 open source.
Pass
Controllable · Is your word final?
83%- C1Communication boundaries
Permission profiles let the owner allow or deny network domains and filesystem paths for commands, enforced by the OS sandbox (Seatbelt, Bubblewrap/seccomp, Windows sandbox) below the model's judgment. MCP servers, connectors and approved escalations fall outside those profiles, and the owner cannot limit which peers or messaging channels the agent uses.
Partial - C2Approval gates
The runtime enforces approval policies (`untrusted`, `on-request`, `never`) and exec-policy rules. Commands that need approval do not run until the owner confirms.
Pass - C3Immediate halt
The owner can interrupt a turn from the TUI at any time, and the local process or background daemon can be stopped immediately (`interpreter app-server daemon stop`).
Pass - C4Data sovereignty
Analytics are on unless `[analytics] enabled = false` is set, and events go to a project-operated endpoint whenever a ChatGPT login or API-key auth session exists. No such events are sent when no auth session is present, for example with local models only. No data-training use by the project is documented.
Partial - C5Credential custody
Credentials are held in the OS keyring or ~/.openinterpreter/auth.json (`cli_auth_credentials_store`), or in environment variables. The owner can inspect, revoke (`/logout`) and move them, and no provider-held integration broker is needed.
Pass - C6Full deletion
All agent state is local and the owner can delete it permanently by removing ~/.openinterpreter and project files. There is no provider-side agent account; analytics already sent when an auth session was active are the only data outside the owner's control.
Pass
Vendors and the public can dispute any finding with evidence. Disputes and their resolutions are published.