Repository navigation
Releases: AhaCrazy/dsh-action-hub
Release list
Action Hub 4.0.0
An Action is now a self-contained directory, so sharing, backup, and git all operate on one unit.
~/.dsh/action-hub/actions/<id>/
action.json metadata, prompt, resource manifest
files/... resource bytes
What changed
- One directory per Action;
actions.jsonis gone. Existing data is migrated once on first start; the legacyactions.json/resources/are renamed aside, not deleted. - Crash-safe per-Action writes (temp + rename); delete removes the directory; duplicate copies its files.
- Export an Action (detail → Export ZIP / Export to folder) or the whole library (header Export → ZIP). A bundle is just the directory, so unzipping gives a human-readable folder.
- Import → “Action bundle”: choose a folder (one Action or a whole library) or a
.zip. Colliding ids get a fresh id; resources travel with the package. - Dependency-free ZIP reader/writer (store/deflate, UTF-8 names, no ZIP64) so bundles don't add runtime dependencies.
- Legacy JSON export/import still works for compatibility.
Verified on the live profile: migration kept all Actions, ZIP export/import round-tripped the library, folder export/import worked, and the UI shows the new export buttons and bundle import tab.
Install
dsh plugin --profile desktop add "github:AhaCrazy/dsh-action-hub#main"
Action Hub 3.0.0
Skill import now has an AI-assisted path, because a Skill and an Action are not the same thing.
How it works
- In Import → From Skill, press AI import on a recognized Skill (or enter a Skill directory and use AI import).
- Action Hub prepares a conversion brief containing the Skill body, its file manifest, and any same-named Skill directories, and opens a fresh conversation with it.
- The model compares the candidates, reads the files it needs, and asks you one question at a time when scope, arguments, or resource selection is genuinely ambiguous.
- When you agree, the model writes one JSON package to the Action Hub inbox. A Host watcher validates it, creates the Action, copies exactly the selected resource files, and removes the inbox file.
The store write is still deterministic and Host-owned; the model only writes the inbox package. If the sandbox refuses that path, the brief tells the model to fall back to a code block for the normal JSON import.
The brief also surfaces same-named candidates, so a thin .agents shim no longer hides a richer .claude copy from the model — it will show you the difference and ask which one to use.
Install
dsh plugin --profile desktop add "github:AhaCrazy/dsh-action-hub#main"
Action Hub 2.1.0
Importing by name still resolves through DSH, so a thin .agents/skills/<name> shim can shadow the rich .claude/skills/<name> copy and only its agents/openai.yaml gets imported.
This release makes the import deterministic:
- “Choose a Skill folder” opens the system folder picker. Action Hub reads
SKILL.mdfrom the chosen folder, creates the Action, and uploads every file inside as a resource. The DSH Skills resolver is not involved, so shadowing cannot happen. - Importing a row from the resolved Skills list now passes that row's concrete path.
- The folder import uses the same resource limits (64 files, 4 MB each, 32 MB total) and reports skipped files.
Verified against ~/.claude/skills/grill-with-docs: the Action now carries the full 3257-character prompt plus ADR-FORMAT.md and CONTEXT-FORMAT.md.
Install
dsh plugin --profile desktop add "github:AhaCrazy/dsh-action-hub#main"
Action Hub 2.0.1
Importing a Skill by name can pick the wrong copy when DSH resolves a same-named Skill from another root — for example a thin .agents/skills/<name> shim shadowing a richer .claude/skills/<name> directory. In that case only the shim's body and its agents/openai.yaml were imported.
This release adds Import from a skill directory: paste the directory (or SKILL.md path) and Action Hub reads that exact body and copies every sibling resource file. The Skills list now also shows each resolved Skill's path, so shadowing is visible.
The Skill import still works by name as before; this is just an explicit override.
Install
dsh plugin --profile desktop add "github:AhaCrazy/dsh-action-hub#main"
Action Hub 2.0.0
Actions are no longer limited to a plain prompt.
Resource files. An Action can now carry code, templates, docs, fixtures, or any local files. They are stored under ~/.dsh/action-hub/resources/<hashed-id>/, and the management editor can add, preview, and delete them (64 files, 4 MB each, 32 MB total).
Resource-aware invocation. When you invoke an Action, small text files are inlined into the <action_content> context, while larger or binary files are listed with a local path so the model reads only what it needs. Nothing is added to the context until you explicitly invoke the Action.
Skill import brings assets. Importing a Skill copies the files next to SKILL.md into the new Action's resources.
Share and duplicate. Whole-library export embeds file contents (base64); import writes them back; duplicating an Action clones its resource directory.
Existing Actions without resources behave exactly as before.
Install
dsh plugin --profile desktop add "github:AhaCrazy/dsh-action-hub#main"
Action Hub 1.3.1
Adjacent text no longer breaks the transcript chip.
Marker detection no longer requires whitespace after the handle, so a message like /ah-…再测试一下 (text typed immediately after the chip) renders as the Action-name chip plus the typed text, and the Host still expands the Action body. Existing messages pick this up on reload. New references also leave a trailing space after the chip.
Install
dsh plugin --profile desktop add "github:AhaCrazy/dsh-action-hub#main"
Action Hub 1.3.0
The composer now shows the Action name instead of the opaque marker.
Inserting a reference builds a real composer chip: the input box shows @代码审查 while the serialized draft stays /ah-…. A small reference-source codec writes the chip back to that marker on send, so the Host expansion, the transcript chip, and zero Skill registration all keep working.
Plain drafts insert at the caret; drafts that already contain file/session chips append at the end so their offsets stay valid.
Install
dsh plugin --profile desktop add "github:AhaCrazy/dsh-action-hub#main"
Action Hub 1.2.0
Action references no longer register Skills.
1.1.0 implemented name-only references by mirroring every Action into a user-invocable runtime Skill. That made Actions show up in the Skills catalog, the / menu, and the context panel.
1.2.0 expands the /ah-… marker in the Host at agent/pre-step and appends an <action_content> message for that step. Nothing is added to the skill registry, so the Skills list and / menu only contain real Skills again. The durable log keeps the marker, so the transcript still shows only the Action name.
Unchanged: no agent tool, no system-prompt section, no skill-catalog cost; filled arguments still insert the full body.
Install
dsh plugin --profile desktop add "github:AhaCrazy/dsh-action-hub#main"
Action Hub 1.1.0
Action references, a properly registered shortcut, and a safer category delete.
Action references (Skill-style)
Picking an Action with no arguments now inserts a reference instead of the whole body. The transcript shows a chip with the Action name, and DSH's native user-invoked skill injection hands the full body to the model. Those runtime skills use modelInvocable: false, so they never enter the model's own skill catalog and still cost zero context until invoked.
Shortcut
The palette shortcut is registered in the Harness shortcut registry and appears under Settings -> General -> Shortcuts, where it can be rebound. The default moved to Ctrl/Cmd + Shift + . so it no longer collides with the browser's Search tabs (Ctrl+Shift+A).
Category deletion
Deleting a category now asks for confirmation and reports how many Actions move to Uncategorized; the Actions themselves are kept.
Install
dsh plugin --profile desktop add "github:AhaCrazy/dsh-action-hub#main"
Action Hub 1.0.1
Dark theme fix: primary buttons and checked switches now use the theme's inverse text token, so the palette stays readable in both themes. Verified live in light and dark.
Install: dsh plugin --profile desktop add "github:AhaCrazy/dsh-action-hub#main"