{
  "schemaVersion": 1,
  "methodology": "https://ionbin.com/interfaces/methodology/#evaluations",
  "evaluation": {
    "id": "claude-code",
    "testedOn": "2026-10-18",
    "coverage": "local-runtime",
    "summary": "Startup checks confirmed that bare mode stops without credentials and restricted mode rejects bypassPermissions. No model response, code change or tool execution was tested.",
    "identity": {
      "version": "2.1.290",
      "target": "Claude Code installed native Windows executable",
      "integrity": "SHA-256 467d3dff9d6bbb26ab765284490a200dd713ee5778c55662007240e7e86386b2 of the installed executable; this identifies the tested file, not an independent provenance audit."
    },
    "environment": [
      "Windows 11 x64; Python 3.12.10 harness. Raw timestamps UTC.",
      "Fresh per-tool home/config/cache; child environment constructed from OS/runtime paths, explicit isolation variables and no inherited credentials. Synthetic fixtures only; no user account sign-in."
    ],
    "checks": [
      {
        "id": "claude-code-version",
        "name": "Installed version",
        "method": "<user-home>\\.local\\bin\\claude.exe --version",
        "expected": "Print the executable version.",
        "observed": "Exit 0. 2.1.290 (Claude Code)",
        "outcome": "pass"
      },
      {
        "id": "claude-code-bare-noauth",
        "name": "Bare mode without credentials",
        "method": "claude --bare --restricted --strict-mcp-config --no-session-persistence -p \"Return the word fixture.\"",
        "expected": "Refuse to start an authenticated model request without credentials.",
        "observed": "Exit 1. Not logged in · Please run /login",
        "outcome": "pass"
      },
      {
        "id": "claude-code-restricted-bypass",
        "name": "Conflicting permission modes",
        "method": "claude --bare --restricted --permission-mode bypassPermissions -p \"Return the word fixture.\"",
        "expected": "Reject bypassPermissions when restricted mode is enabled.",
        "observed": "Exit 1. Error: bypassPermissions not supported in restricted mode",
        "outcome": "pass"
      }
    ],
    "findings": [
      {
        "title": "Restricted mode rejects the explicit bypass combination",
        "basis": "observed",
        "severity": "informational",
        "detail": "The exact invocation combining --restricted and --permission-mode bypassPermissions exited 1 with a configuration error. That is one preflight control; it does not prove tool isolation against malicious prompts.",
        "practicalAdvice": "Keep restricted mode for suitable tasks and test the actual file/network permissions in a disposable project before using sensitive material."
      },
      {
        "title": "Bare mode makes missing credentials visible",
        "basis": "observed",
        "severity": "informational",
        "detail": "The account-free print invocation exited 1 and requested login. --bare was selected because its local help states that it skips keychain reads, hooks and automatic context discovery.",
        "practicalAdvice": "Use explicit credentials and context for automated runs; do not assume a no-login test covers the normal interactive configuration."
      },
      {
        "title": "Noninteractive trust needs deliberate handling",
        "basis": "documented",
        "severity": "medium",
        "detail": "The tested CLI help warns that print/non-TTY execution skips the workspace trust dialog and can silently ignore invalid settings. This documented behavior was not independently adversarially tested.",
        "practicalAdvice": "Only run print mode in reviewed directories, and validate settings before relying on them."
      }
    ],
    "caveats": [
      "These are startup/permission-configuration checks, not an agent task benchmark.",
      "The full interactive profile can load additional context, hooks, plugins and MCP servers; the bare fixture excluded those."
    ],
    "notTested": [
      "Model quality, actual tool allow/deny enforcement, prompt injection resistance and sandbox escape.",
      "OAuth/keychain behavior, plugins, hooks, browser integration, network destinations and billing."
    ],
    "sources": [
      {
        "label": "Official documentation",
        "url": "https://code.claude.com/docs/en/overview"
      },
      {
        "label": "Security model",
        "url": "https://code.claude.com/docs/en/security"
      }
    ],
    "reportUrl": "/interface-evaluations/claude-code.json"
  }
}
