workspace.md
markdown
sha256:e8214e0062ef8ef0af999937df2731655b6082781fc22bc563f58db2f42b1de9
Merge 'bump/muse-v0.2.1' into 'dev' — proposal: chore: bump…
Human
5 days ago
muse workspace — multi-repository workspaces
A workspace links multiple independent Muse repositories together under a single manifest, giving you a unified status view, one-shot synchronisation, and a clear model for multi-repo projects.
When to use workspaces vs. worktrees
| Need | Use |
|---|---|
| Multiple branches of one repo simultaneously | muse worktree |
| Multiple separate repos that evolve together | muse workspace |
Use cases
- A film score with a melody repo, a harmony repo, and a samples repo
- A machine learning pipeline with a model repo, a dataset repo, and an eval repo
- A micro-service backend where each service lives in its own Muse repo
- An agent swarm where each autonomous agent manages its own state repo, and the coordinator workspace tracks them all
Workspace manifest
The manifest lives at .muse/workspace.toml:
[[members]]
name = "core"
url = "https://musehub.ai/acme/core"
path = "repos/core"
branch = "main"
[[members]]
name = "sounds"
url = "https://musehub.ai/acme/sounds"
path = "repos/sounds"
branch = "v2"
Subcommands
muse workspace add <name> <url>
Register a member repository.
muse workspace add core https://musehub.ai/acme/core
muse workspace add sounds https://musehub.ai/acme/sounds --branch v2
muse workspace add data /path/to/local/dataset --path vendor/data
| Option | Default | Description |
|---|---|---|
--path |
repos/<name> |
Relative checkout path inside the workspace |
--branch, -b |
main |
Branch to track |
Registration writes the manifest entry. Run muse workspace sync to clone.
muse workspace list
List all registered members with their status.
name branch present HEAD url
──────────────────────────────────────────────────────────────────────────────
core main yes a1b2c3d4ef56 https://musehub.ai/acme/core
sounds v2 yes deadbeef0012 https://musehub.ai/acme/sounds
data main no (not cloned) /path/to/local/dataset
muse workspace remove <name>
Remove a member from the manifest. The member's directory is not deleted.
muse workspace remove sounds
muse workspace status
Rich status view for all members.
Workspace: /Users/me/myproject
✅ core branch=main head=a1b2c3d4ef56
path: /Users/me/myproject/repos/core
url: https://musehub.ai/acme/core
❌ data branch=main head=not cloned
path: /Users/me/myproject/repos/data
url: /path/to/local/dataset
muse workspace sync [name]
Clone or pull all members (or one named member).
muse workspace sync # sync everything
muse workspace sync core # sync only 'core'
- If a member directory does not exist,
muse cloneis run to fetch it. - If a member directory already exists,
muse pullis run to update it.
Agent workflows
Coordinator + worker pattern
# Coordinator workspace tracks N worker repos:
muse workspace add worker-001 https://musehub.ai/swarm/worker-001
muse workspace add worker-002 https://musehub.ai/swarm/worker-002
muse workspace add worker-003 https://musehub.ai/swarm/worker-003
# Sync all workers to latest:
muse workspace sync
# Status across all:
muse workspace status
Release pipeline
# Pin all members to release branches before archiving:
muse workspace add core https://musehub.ai/acme/core --branch release/v2
muse workspace add sounds https://musehub.ai/acme/sounds --branch release/v2
muse workspace sync
# Archive each member:
for member in repos/*/; do
(cd "$member" && muse archive --output "../../archives/$(basename $member).tar.gz")
done
Exit codes
| Code | Meaning |
|---|---|
| 0 | Success |
| 1 | Validation error, duplicate name, or member not found |
File History
4 commits
sha256:e8214e0062ef8ef0af999937df2731655b6082781fc22bc563f58db2f42b1de9
Merge 'bump/muse-v0.2.1' into 'dev' — proposal: chore: bump…
Human
5 days ago
sha256:8de4334a98c945aace420969d389ad678aa926d4ab4e886b2ac4c4241cb3bf2b
revert: keep pyproject.toml in canonical PEP 440 form
Sonnet 4.6
patch
63 days ago
sha256:a317886dc0496c4af7b285b3e41c86c4c34ea2e79afc63b8829aadb1ada7903f
chore: bump version to 0.2.0rc15 to match musehub#113 fix release
Sonnet 4.6
patch
63 days ago
sha256:f3b726b50f0aee3622bba751e0a67aa7ae4cf75a798477dbce581940b6a9cf70
feat: migrate invariants cache to .muse/cache/invariants.ms…
Sonnet 4.6
patch
130 days ago