docs/public-surface-facts.json
Rama main · réplica de lectura del repositorio original.
{
"schemaVersion": 2,
"product": {
"name": "Codewhale",
"description": "Terminal coding agent for supported hosted and local models. One runtime on your machine. Rust, MIT.",
"positioning": "Terminal-native, model/provider-neutral, local-first coding agent",
"license": "MIT",
"terminology": {
"Fleet": "the user's model inventory: who is in the roster and which member is selected",
"Workflow": "what order the work follows",
"Lane": "one running Workflow instance",
"Runtime": "where, how, and with what authority selected work executes"
},
"sources": [
"Cargo.toml",
"LICENSE",
"README.md",
"npm/codewhale/package.json",
"docs/FLEET.md"
]
},
"sourceCandidate": {
"version": "0.10.3",
"providerCount": 50,
"toolCount": 82,
"sandboxBackends": [
"seatbelt (macOS, when available)",
"bubblewrap (Linux, default when installed and working)"
],
"sources": [
"Cargo.toml",
"crates/runtime/src/config.rs",
"crates/sandbox/src/lib.rs",
"web/scripts/derive-facts.mjs"
],
"providerCountDefinition": "Website descriptor identities in this source snapshot, excluding Custom and retired identities; includes protocol/plan variants. Not a count of distinct vendors, ProviderKind identities, live catalogs, or providers in any published release."
},
"latestPublishedRelease": {
"tag": "v0.10.2",
"version": "0.10.2",
"publishedAt": "2026-10-24T17:31:14Z",
"url": "https://github.com/codewhale-hq/CodeWhale/releases/tag/v0.10.2",
"sources": [
"web/data/latest-published-release.json"
]
},
"install": {
"recommended": "curl -fsSL https://codewhale.net/install.sh | sh",
"binaries": [
"codewhale",
"codew"
],
"channels": {
"npm": "published releases only",
"cargo": "published crates only",
"prebuiltArchives": "published GitHub Releases only",
"cnbMirror": "documented targets only"
},
"androidTermux": {
"status": "preview",
"npm": "preview",
"requiresMatchingPublishedAssets": true,
"sourceBuild": true
},
"sources": [
"README.md",
"npm/codewhale/package.json",
"npm/codewhale/README.md",
"npm/codewhale/scripts/artifacts.js",
"docs/INSTALL.md",
"docs/CNB_MIRROR.md"
]
},
"control": {
"modes": [
"Plan",
"Work"
],
"permissionPostures": [
"Ask",
"Accept Edits",
"Auto-Review",
"Full Access"
],
"shortcuts": {
"completion": {
"chord": "Tab",
"when": "composer completion only"
},
"permissionDial": {
"chord": "Shift+Tab",
"when": "always (suppressed only under a non-Config modal)"
}
},
"sources": [
"docs/MODES.md",
"docs/KEYBINDINGS.md",
"crates/runtime/src/settings.rs",
"crates/config/src/app_mode.rs",
"crates/tui/src/tui/app.rs"
],
"scope": "0.10.3 source candidate; not the v0.10.2 published release",
"permissionDial": [
"Ask",
"Accept Edits",
"Plan",
"Auto-Review",
"Full Access"
],
"defaultPermissionPosture": "Accept Edits",
"retiredModeAliases": {
"Operate": "Work"
}
},
"toolSurface": {
"defaultActive": [
"read",
"write",
"edit",
"file_search",
"grep_files",
"bash",
"agent",
"todo_write",
"create_goal",
"get_goal",
"update_goal",
"task_shell_wait",
"present",
"load_skill"
],
"schemas": {
"read": [
"path",
"offset?",
"limit?"
],
"write": [
"path",
"content"
],
"edit": [
"path",
"edits"
],
"bash": [
"command",
"timeout?"
]
},
"deferred": {
"Web": [
"search",
"fetch",
"wait"
]
},
"compatibility": {
"legacyAliases": "hidden-exact",
"modelVisible": false,
"toolSearchDiscoverable": false
},
"activationCache": {
"maximumNames": 8,
"maximumSchemaBytes": 16384,
"scope": "per conversation; each subagent owns an independent policy-filtered cache"
},
"agentConcurrency": {
"defaultConfigured": 64,
"maximumConfigured": 128,
"maximumAdmitted": 1024
},
"sources": [
"docs/TOOL_SURFACE.md",
"docs/RUNTIME_SIMPLIFICATION_DESIGN.md",
"crates/engine/src/core/engine/tool_catalog.rs",
"crates/engine/src/tools/registry.rs",
"crates/runtime/src/config/subagent_limits.rs"
],
"scope": "0.10.3 source candidate; not the v0.10.2 published release"
},
"surfaces": {
"availableInSourceCandidate": [
"TUI",
"codewhale exec",
"Web client",
"Runtime API",
"MCP",
"Fleet"
],
"sources": [
"docs/GUIDE.md",
"docs/WEB.md",
"docs/RUNTIME_API.md",
"docs/MCP.md",
"docs/FLEET.md"
]
},
"trust": {
"localRuntime": "runtime, workspace state, and audit log stay on the user's machine",
"hostedProviderBoundary": "the selected hosted provider receives turn context required for inference",
"localInference": "a loopback local-model route can keep inference local",
"telemetry": "Codewhale 0.10.3 counts anonymous usage by default and discloses it at first launch (policy notice version 5, naming Codewhale and PostHog as processors), while the earlier 0.9.11 release asked first; turning it off is a saved choice that later versions keep, an opt-out recorded under the earlier opt-in policy stays off, and showing the notice never records any acceptance on the user's behalf; Codewhale does not collect conversations, code, prompts, files, file/repo/branch names, model content, credentials, or per-turn/per-tool timelines; while on, sessions post aggregate counts and closed enums to the first-party endpoint https://telemetry.codewhale.net/v1/telemetry, whose storage has no IP, country, or geo column and a fixed three-month retention; optional PostHog forwarding requires separate operator configuration and verified IP-safe egress, and its retention is a separate project setting; telemetry_endpoint = \"\" writes only to a local dry-run file; no mandatory hosted relay",
"account": "no account required for the local runtime",
"plan": "Plan centrally refuses file mutation and shell execution; policy-allowed research may contact external services and local session state can still be persisted.",
"sandbox": "Seatbelt is used on macOS when available; Linux bubblewrap is on by default once installed and verified working, and prefer_bwrap = false opts out; Windows currently reports no OS sandbox",
"audit": "sensitive events append best-effort to $CODEWHALE_HOME/audit.log (default ~/.codewhale/audit.log); write failures are logged",
"usage": "provider token and cache usage is shown locally when available",
"sources": [
"docs/PROVIDERS.md",
"docs/MODES.md",
"docs/SANDBOX.md",
"docs/RUNTIME_API.md",
"docs/WEB.md",
"crates/runtime/src/audit.rs",
"web/app/[locale]/faq/page.tsx",
"web/app/[locale]/install/page.tsx"
]
},
"platforms": {
"prebuilt": [
"Linux x64",
"Linux arm64",
"macOS x64",
"macOS arm64",
"Windows x64",
"Windows arm64"
],
"preview": [
"Android/Termux arm64"
],
"sources": [
"docs/INSTALL.md"
]
},
"repository": {
"canonical": "https://github.com/codewhale-hq/CodeWhale",
"mirrors": [
"https://cnb.cool/codewhale.net/codewhale",
"https://npmmirror.com/package/codewhale"
],
"creditSources": [
"CHANGELOG.md",
"docs/CONTRIBUTORS.md",
"web/lib/release-credits.ts"
],
"requiredCandidateCredits": [
"@printf033",
"@isaacs",
"@7jrxt42BxFZo4iAnN4CX",
"@SparkofSpike",
"@gaord",
"@Lstarsky0",
"@asto18089",
"@Aboysky",
"@ddlw",
"@laozidabo",
"@Ricardo-M-L",
"@luochen211",
"@gannp",
"@Felixkw12",
"@Gabriel-Degret",
"@soarkit",
"@d-onistack",
"@liuyy2",
"@luestr",
"@M-Maciej",
"@Statter",
"@eugenicum"
]
},
"screenshot": {
"readme": "web/public/codewhale-tui-0102-demo.png",
"website": "web/public/codewhale-tui-0102-demo.png",
"sourceVersion": "0.10.3",
"sourceCommit": "e5279420647e15896150728ecf9a1f9fa80aadd1",
"sourceSha256": "89e30c3e2f31c0c189d8162bdc253f8e36b4bbf4ffc1f56271f88f8a48eff8cb",
"sourceDirty": true,
"sourceDiffSha256": "79a63eac14177de2ebf178ccd124ae46b3f37a0013a226d508306e2e933ae65f",
"binarySha256": "fffd1d3f3b679eac6ea2b83a33c5871935770c850755086dd15c1b633bbe9609",
"terminal": "real PTY cell capture; the product page renders native cells as selectable HTML text, and the README image is the same frame exported as SVG by web/scripts/render-terminal-capture.mjs and rasterized as PNG",
"theme": "Underwater (default)",
"capture": "Captured on 2026-11-10 from the development build of a dirty 0.10.3 candidate based on e5279420647e15896150728ecf9a1f9fa80aadd1 by the opt-in website_current_terminal_capture test using crates/tui/tests/support/qa_harness. Exact source diff and binary hashes are recorded here and in the capture manifest. A deterministic loopback provider drives the real Engine to edit a JSON exporter, run three passing local Python tests and delegate a source-grounded read-only review. Home (with the Tasks workbar), unsent composer, configured provider manager, help, Tasks and Fleet are actual application output with no retouched cells or fixture history. Sealed HOME and Full Access apply only to the isolated demo workspace. This is a local scripted demo, not published-release or external-provider qualification.",
"sources": [
"crates/tui/tests/support/qa_harness",
"crates/tui/tests/cucumber/launch_card_pty.rs",
"web/lib/terminal-captures/manifest.json",
"web/lib/terminal-captures/website-home-100x24.json",
"web/scripts/render-terminal-capture.mjs",
"web/public/codewhale-tui-0102-demo.png"
]
}
}