Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion .claude-plugin/plugin.json
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
{
"name": "shambu",
"version": "0.5.0",
"version": "0.5.1",
"description": "Prepare, inspect and patch Bambu Studio projects (.3mf) from STL files, slice them headless with estimates, and read a Bambu Lab printer's status over LAN (read-only). Built on Bambu Studio's own command line.",
"author": { "name": "Shav Vimalendiran" },
"homepage": "https://github.com/Shavvimal/shambu",
Expand Down
8 changes: 8 additions & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -4,6 +4,14 @@ All notable changes to this project are documented here. The format follows
[Keep a Changelog](https://keepachangelog.com/en/1.1.0/) and the project uses
[Semantic Versioning](https://semver.org/spec/v2.0.0.html).

## [0.5.1] - 2026-10-27

### Changed
- setup skill, step 5: updating the plugin is one command, `/plugin marketplace update shambu`: per the Claude Code
docs it refreshes the marketplace and updates the plugins installed from it, and closing the `/plugin` panel runs
`/reload-plugins`. The two documented fallbacks stay: `/reload-plugins --force` when the reload is left pending,
`/plugin update shambu@shambu` when the update reports a plugin it left for you. The README says the same.

## [0.5.0] - 2026-10-27

Printer profiles for LAN-only mode and cloud mode. On 2026-10-27 the X2D went to LAN-only mode and regenerated its
Expand Down
11 changes: 7 additions & 4 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -56,17 +56,20 @@ As a Claude Code plugin:
/shambu:setup
```

`/shambu:setup` installs the CLI (`uv tool install "shambu @ git+https://github.com/Shavvimal/shambu@v0.5.0"`) and runs
To update later: `/plugin marketplace update shambu` (it updates the installed plugin and reloads when the panel
closes), then `/shambu:setup update`.

`/shambu:setup` installs the CLI (`uv tool install "shambu @ git+https://github.com/Shavvimal/shambu@v0.5.1"`) and runs
`shambu doctor`. From then on, ask Claude to "make a plate from these STLs with PETG functional settings" and the
`/shambu` skill does the rest.

CLI only:

```
uv tool install "shambu @ git+https://github.com/Shavvimal/shambu@v0.5.0"
shambu doctor --expect-version 0.5.0
uv tool install "shambu @ git+https://github.com/Shavvimal/shambu@v0.5.1"
shambu doctor --expect-version 0.5.1
# or without installing:
uvx --from "git+https://github.com/Shavvimal/shambu@v0.5.0" shambu doctor --expect-version 0.5.0
uvx --from "git+https://github.com/Shavvimal/shambu@v0.5.1" shambu doctor --expect-version 0.5.1
```

## Usage
Expand Down
22 changes: 12 additions & 10 deletions skills/setup/SKILL.md
Original file line number Diff line number Diff line change
Expand Up @@ -27,27 +27,27 @@ ls /Applications/BambuStudio.app/Contents/MacOS/BambuStudio && defaults read /Ap
## 2. Install or update the CLI

```
uv tool install --reinstall "shambu @ git+https://github.com/Shavvimal/shambu@v0.5.0"
shambu --version # must print: shambu 0.5.0
uv tool install --reinstall "shambu @ git+https://github.com/Shavvimal/shambu@v0.5.1"
shambu --version # must print: shambu 0.5.1
```

The tag matches this setup text, and the `/shambu` skill text expects the same version. If `shambu` is not found
afterwards, run `uv tool update-shell` and open a new shell (the uv tool bin dir must be on PATH). Alternative
without a persistent install: `uvx --from "git+https://github.com/Shavvimal/shambu@v0.5.0" shambu doctor --expect-version 0.5.0`.
without a persistent install: `uvx --from "git+https://github.com/Shavvimal/shambu@v0.5.1" shambu doctor --expect-version 0.5.1`.

Install from the tag above, not from a local checkout: `uv tool install .` copies the code once and does not follow
the plugin (that is how a 0.2.1 CLI ran under a 0.3.0 plugin). A checkout is for development only.

## 3. Check the machine

```
shambu --version # must print: shambu 0.5.0
shambu doctor --expect-version 0.5.0
shambu --version # must print: shambu 0.5.1
shambu doctor --expect-version 0.5.1
```

Run `shambu --version` first: every release prints it. If it shows another number, step 2 did not take: run it
again and open a new shell. A usage error on `--expect-version` (`unrecognized arguments`) means the installed CLI
predates 0.4.0: run step 2. Exit 3 with `skill expects 0.5.0: MISMATCH` means the same. Expected: the shambu version
predates 0.4.0: run step 2. Exit 3 with `skill expects 0.5.1: MISMATCH` means the same. Expected: the shambu version
and how it was installed, the Bambu Studio version and binary, the profile sources (Application Support copy first,
then the app bundle), the GUI's current presets and bed type, whether a printer is selected and its access code is
stored (the code itself is never printed), with a profile the line `printer profile <name> (default): serial
Expand Down Expand Up @@ -103,12 +103,14 @@ check; a `login --printer NAME` refresh without `--insecure` clears it.

## 5. Updating

1. `/plugin marketplace update shambu` (refreshes the local copy of the repo; without it, `/plugin update` finds nothing new).
2. `/plugin update shambu@shambu`, then `/reload-plugins`.
3. Run `/shambu:setup install` again: the new setup text pins the matching tag in step 2. Not `uv tool upgrade
1. `/plugin marketplace update shambu`: one command refreshes the marketplace and updates the plugins installed from
it (`Updated 1 marketplace (1 plugin bumped)`). Closing the `/plugin` panel runs `/reload-plugins` for you. Two
fallbacks the docs name: when the reload is left pending because it would invalidate the prompt cache, run
`/reload-plugins --force`; when the update reports a plugin it left for you, run `/plugin update shambu@shambu`.
2. Run `/shambu:setup install` again: the new setup text pins the matching tag in step 2. Not `uv tool upgrade
shambu`: it keeps the old source (a tag or a local folder). The line it runs is
`uv tool install --reinstall "shambu @ git+https://github.com/Shavvimal/shambu@vX.Y.Z"` with the new version.
4. `shambu doctor --expect-version 0.5.0` exits 0.
4. `shambu doctor --expect-version 0.5.1` exits 0.

## Troubleshooting

Expand Down
2 changes: 1 addition & 1 deletion skills/shambu/SKILL.md
Original file line number Diff line number Diff line change
Expand Up @@ -13,7 +13,7 @@ send a job. Request: $ARGUMENTS
## Before you start (standing rules)

1. Before the first shambu command of a task (before the spec is written): `shambu --version` (it must print:
shambu 0.5.0), then `shambu doctor --json --expect-version 0.5.0`. Exit 3 with `"shambu": {"match": false}`
shambu 0.5.1), then `shambu doctor --json --expect-version 0.5.1`. Exit 3 with `"shambu": {"match": false}`
(`MISMATCH` and a `Fix:` line) means another version is on PATH. A usage error on `--expect-version` means one
older than 0.4.0. Either way: stop, give both versions and the fix (`/shambu:setup update`). Never use
`uv run --project`, a checkout or another binary. No `timeout` wrapper (macOS has none), no `2>/dev/null`.
Expand Down
2 changes: 1 addition & 1 deletion src/shambu/__init__.py
Original file line number Diff line number Diff line change
Expand Up @@ -24,4 +24,4 @@
"StudioError",
"__version__",
]
__version__ = "0.5.0"
__version__ = "0.5.1"
Loading