Skip to content
Musher Docs

SDKs

Official client libraries for pulling, verifying, caching, and loading versioned bundles of prompts, skills, toolsets, and agent specs from Musher.

CLI or SDK?

Get Started

bash
pip install musher-sdk
python
import musher

bundle = musher.pull("acme/code-review-kit")

for fh in bundle.files():
    print(f"{fh.logical_path} ({fh.media_type or 'unknown'})")

Choose Your Language

Feature Comparison

FeaturePythonTypeScript
Packagemusher-sdk@musher-dev/musher-sdk
RuntimePython 3.13+Node.js 20+
Sync clientClient
Async clientAsyncClientMusherClient
Pull bundlespull() / pull_async()pull()
Resolve metadataresolve() / resolve_async()resolve()
VerificationSHA-256 on pullSHA-256 integrity
Cache managementcache_info(), cache_remove(), cache_clean(), cache_clear()client.cache.list(), .stats(), .remove(), .has(), .invalidate(), .clean(), .purge()
LockfilesPlannedwriteLockfile()
Typed handlesFile, Skill, Prompt, Toolset, AgentSpecFile, Skill, Prompt, Toolset, AgentSpec
Schema validationPydanticZod
Authenv, keyring, file, programmaticenv, keyring, file, programmatic
Claude integrationPlugin export, skill installPlugin export, skill install
OpenAI integrationLocal + inline exportLocal + inline
VS Code integrationPlannedinstallVSCodeSkills()
Dependencieshttpx, keyring, platformdirs, pydanticzod

Features marked Planned exist as method stubs in the SDK but are not yet functional.

Authentication

Both SDKs automatically discover credentials from multiple sources, checked in order:

  1. Programmatic — pass a token directly via configure() or the client constructor
  2. MUSHER_API_KEY environment variable
  3. OS keyring (musher/<host>)
  4. Credential file (~/.local/share/musher/credentials/)

The SDK uses the first credential found. For most use cases, setting the MUSHER_API_KEY environment variable is the simplest option.