catalog / cross-platform
The bash tool has three structurally different shapes across platforms
verifiedClaude.ai, Claude Code, and Claude Desktop each expose a structurally different bash tool — different parameter names, different timeouts, different state semantics.
- Category: cross-platform
- Applies to: Claude.ai ✅ (
bash_tool) | Claude Code ✅ (Bash) | Claude Desktop ✅ (mcp__workspace__bash) - Verified on: schema-diff comparison, 2026-05-17
- Verification tier: verified
- Severity: Behavioral divergence
Symptom
A skill that runs shell commands behaves differently on each platform: different filesystem, different timeout ceiling, different policy guards, different state-carryover semantics.
Cause
Three different tools that look interchangeable from a SKILL.md perspective:
- **Claude.ai
bash_tool:** sandboxed Linux,descriptionrequired, no timeout parameter, allowlisted network egress - **Claude Code
Bash:** host filesystem (the user's real machine),descriptionrequired,run_in_backgroundfirst-class, embedded git policy, 600s ceiling - **Claude Desktop
mcp__workspace__bash:** sandboxed Linux at/sessions/.../mnt/, nodescription, no backgrounding, 45s ceiling, no state carryover
Fix
Skills assuming "the user's real filesystem" only work on Code. Skills assuming a "fast sandboxed shell" only work on Desktop. Skills assuming Claude.ai's allowlisted network only work there. Don't write portable bash-heavy skills without per-platform branching, or constrain the skill to operations that work the same on all three.
Notes
Related: ../tool-constraints/desktop-bash-45-second-ceiling.md, ../tool-constraints/code-bash-600-second-ceiling.md, ../tool-behaviors/code-bash-embedded-git-policy.md, ../tool-behaviors/desktop-bash-no-state-carryover.md, ../environment/desktop-bash-sandboxed-not-host.md.