| 1 | { |
| 2 | "schemaVersion": 2, |
| 3 | "product": { |
| 4 | "name": "Codewhale", |
| 5 | "description": "Terminal coding agent for supported hosted and local models. One runtime on your machine. Rust, MIT.", |
| 6 | "positioning": "Terminal-native, model/provider-neutral, local-first coding agent", |
| 7 | "license": "MIT", |
| 8 | "terminology": { |
| 9 | "Fleet": "who does the work", |
| 10 | "Workflow": "what order the work follows", |
| 11 | "Lane": "one running Workflow instance", |
| 12 | "Runtime": "where and how a Lane executes" |
| 13 | }, |
| 14 | "sources": [ |
| 15 | "Cargo.toml", |
| 16 | "LICENSE", |
| 17 | "README.md", |
| 18 | "npm/codewhale/package.json", |
| 19 | "docs/FLEET.md" |
| 20 | ] |
| 21 | }, |
| 22 | "sourceCandidate": { |
| 23 | "version": "0.9.4", |
| 24 | "providerCount": 40, |
| 25 | "toolCount": 69, |
| 26 | "sandboxBackends": [ |
| 27 | "seatbelt (macOS, when available)", |
| 28 | "bubblewrap (Linux, opt-in when installed)" |
| 29 | ], |
| 30 | "sources": [ |
| 31 | "Cargo.toml", |
| 32 | "crates/tui/src/config.rs", |
| 33 | "crates/tui/src/sandbox/mod.rs", |
| 34 | "web/scripts/derive-facts.mjs" |
| 35 | ] |
| 36 | }, |
| 37 | "latestPublishedRelease": { |
| 38 | "tag": "v0.9.3", |
| 39 | "version": "0.9.3", |
| 40 | "publishedAt": "2026-07-31T15:04:14Z", |
| 41 | "url": "https://github.com/Hmbown/CodeWhale/releases/tag/v0.9.3", |
| 42 | "sources": [ |
| 43 | "web/data/latest-published-release.json" |
| 44 | ] |
| 45 | }, |
| 46 | "install": { |
| 47 | "recommended": "npm install -g codewhale", |
| 48 | "binaries": [ |
| 49 | "codewhale", |
| 50 | "codew", |
| 51 | "codewhale-tui" |
| 52 | ], |
| 53 | "channels": { |
| 54 | "npm": "published releases only", |
| 55 | "cargo": "published crates only", |
| 56 | "prebuiltArchives": "published GitHub Releases only", |
| 57 | "cnbMirror": "documented targets only" |
| 58 | }, |
| 59 | "androidTermux": { |
| 60 | "status": "preview", |
| 61 | "npm": "preview", |
| 62 | "requiresMatchingPublishedAssets": true, |
| 63 | "sourceBuild": true |
| 64 | }, |
| 65 | "sources": [ |
| 66 | "README.md", |
| 67 | "npm/codewhale/package.json", |
| 68 | "npm/codewhale/README.md", |
| 69 | "npm/codewhale/scripts/artifacts.js", |
| 70 | "docs/INSTALL.md", |
| 71 | "docs/CNB_MIRROR.md" |
| 72 | ] |
| 73 | }, |
| 74 | "control": { |
| 75 | "modes": [ |
| 76 | "Plan", |
| 77 | "Act", |
| 78 | "Operate" |
| 79 | ], |
| 80 | "permissionPostures": [ |
| 81 | "Ask", |
| 82 | "Auto-Review", |
| 83 | "Full Access" |
| 84 | ], |
| 85 | "shortcuts": { |
| 86 | "mode": { |
| 87 | "chord": "Tab", |
| 88 | "when": "composer empty" |
| 89 | }, |
| 90 | "permissionPosture": { |
| 91 | "chord": "Shift+Tab", |
| 92 | "when": "always (suppressed only under a non-Config modal)" |
| 93 | } |
| 94 | }, |
| 95 | "sources": [ |
| 96 | "docs/MODES.md", |
| 97 | "docs/KEYBINDINGS.md", |
| 98 | "crates/tui/src/settings.rs" |
| 99 | ] |
| 100 | }, |
| 101 | "toolSurface": { |
| 102 | "defaultActive": [ |
| 103 | "Bash", |
| 104 | "File", |
| 105 | "Git", |
| 106 | "Run", |
| 107 | "agent", |
| 108 | "remember", |
| 109 | "tasks", |
| 110 | "work_update", |
| 111 | "tool_search" |
| 112 | ], |
| 113 | "actions": { |
| 114 | "Bash": [ |
| 115 | "run", |
| 116 | "wait", |
| 117 | "interact", |
| 118 | "cancel" |
| 119 | ], |
| 120 | "File": [ |
| 121 | "read", |
| 122 | "list", |
| 123 | "search_name", |
| 124 | "search_content", |
| 125 | "write", |
| 126 | "edit", |
| 127 | "patch" |
| 128 | ], |
| 129 | "Git": [ |
| 130 | "status", |
| 131 | "diff", |
| 132 | "log", |
| 133 | "show", |
| 134 | "blame" |
| 135 | ], |
| 136 | "Run": [ |
| 137 | "tests", |
| 138 | "verifiers" |
| 139 | ] |
| 140 | }, |
| 141 | "deferred": { |
| 142 | "Web": [ |
| 143 | "search", |
| 144 | "fetch", |
| 145 | "wait" |
| 146 | ] |
| 147 | }, |
| 148 | "compatibility": { |
| 149 | "legacyAliases": "replay-only", |
| 150 | "modelVisible": false, |
| 151 | "toolSearchDiscoverable": false |
| 152 | }, |
| 153 | "agentConcurrency": { |
| 154 | "defaultConfigured": 64, |
| 155 | "maximumConfigured": 128, |
| 156 | "maximumAdmitted": 1024 |
| 157 | }, |
| 158 | "sources": [ |
| 159 | "docs/TOOL_SURFACE.md", |
| 160 | "docs/RUNTIME_SIMPLIFICATION_DESIGN.md", |
| 161 | "crates/tui/src/core/engine/tool_catalog.rs", |
| 162 | "crates/tui/src/tools/registry.rs", |
| 163 | "crates/tui/src/config/subagent_limits.rs" |
| 164 | ] |
| 165 | }, |
| 166 | "surfaces": { |
| 167 | "availableInSourceCandidate": [ |
| 168 | "TUI", |
| 169 | "codewhale exec", |
| 170 | "Web client", |
| 171 | "Runtime API", |
| 172 | "MCP", |
| 173 | "Fleet" |
| 174 | ], |
| 175 | "sources": [ |
| 176 | "docs/GUIDE.md", |
| 177 | "docs/WEB.md", |
| 178 | "docs/RUNTIME_API.md", |
| 179 | "docs/MCP.md", |
| 180 | "docs/FLEET.md" |
| 181 | ] |
| 182 | }, |
| 183 | "trust": { |
| 184 | "localRuntime": "runtime, workspace state, and audit log stay on the user's machine", |
| 185 | "hostedProviderBoundary": "the selected hosted provider receives turn context required for inference", |
| 186 | "localInference": "a loopback local-model route can keep inference local", |
| 187 | "telemetry": "product telemetry is opt-in, off by default, and sends nothing until the first-run notice is answered with Enable; an enabled session posts 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; telemetry_endpoint = \"\" keeps an enabled session writing only to a local dry-run file; no mandatory hosted relay", |
| 188 | "account": "no account required for the local runtime", |
| 189 | "plan": "Plan is read-only", |
| 190 | "sandbox": "Seatbelt is used on macOS when available; Linux bubblewrap is opt-in and must be installed; Windows currently reports no OS sandbox", |
| 191 | "audit": "sensitive events append best-effort to $CODEWHALE_HOME/audit.log (default ~/.codewhale/audit.log); write failures are logged", |
| 192 | "usage": "provider token and cache usage is shown locally when available", |
| 193 | "sources": [ |
| 194 | "docs/PROVIDERS.md", |
| 195 | "docs/MODES.md", |
| 196 | "docs/SANDBOX.md", |
| 197 | "docs/RUNTIME_API.md", |
| 198 | "docs/WEB.md", |
| 199 | "crates/tui/src/audit.rs", |
| 200 | "web/app/[locale]/faq/page.tsx", |
| 201 | "web/app/[locale]/install/page.tsx" |
| 202 | ] |
| 203 | }, |
| 204 | "platforms": { |
| 205 | "prebuilt": [ |
| 206 | "Linux x64", |
| 207 | "Linux arm64", |
| 208 | "macOS x64", |
| 209 | "macOS arm64", |
| 210 | "Windows x64", |
| 211 | "Windows arm64" |
| 212 | ], |
| 213 | "preview": [ |
| 214 | "Android/Termux arm64" |
| 215 | ], |
| 216 | "sources": [ |
| 217 | "docs/INSTALL.md" |
| 218 | ] |
| 219 | }, |
| 220 | "repository": { |
| 221 | "canonical": "https://github.com/Hmbown/CodeWhale", |
| 222 | "mirrors": [ |
| 223 | "https://cnb.cool/codewhale.net/codewhale", |
| 224 | "https://npmmirror.com/package/codewhale" |
| 225 | ], |
| 226 | "creditSources": [ |
| 227 | "CHANGELOG.md", |
| 228 | "docs/CONTRIBUTORS.md", |
| 229 | "web/lib/release-credits.ts" |
| 230 | ], |
| 231 | "requiredCandidateCredits": [ |
| 232 | "@SparkofSpike", |
| 233 | "@XhesicaFrost", |
| 234 | "@aboimpinto", |
| 235 | "@shenjackyuanjie", |
| 236 | "@DracheTek", |
| 237 | "@MuRongMoQing" |
| 238 | ] |
| 239 | }, |
| 240 | "screenshot": { |
| 241 | "readme": "assets/screenshot.png", |
| 242 | "website": "web/public/codewhale-tui.png", |
| 243 | "sourceVersion": null, |
| 244 | "sourceCommit": null, |
| 245 | "terminal": "unrecorded", |
| 246 | "theme": "Blue Stage dark", |
| 247 | "capture": "current Codewhale session; exact binary identity was not recorded, so this image makes no published-release or exact-candidate claim", |
| 248 | "sources": [ |
| 249 | "crates/tui" |
| 250 | ] |
| 251 | } |
| 252 | } |
| 253 |