From assets
Create the assets plugin's config file from the bundled template. Defaults to repo-local <repo>/.claude/assets/config.yaml; --global writes ~/.claude/plugins/assets/config.yaml. Refuses to overwrite without --force. Trigger on /init-assets-config.
How this skill is triggered — by the user, by Claude, or both
Slash command
/assets:init-assets-configThis skill is limited to the following tools:
The summary Claude sees in its skill listing — used to decide when to auto-load this skill
Create the assets plugin's `config.yaml` from the bundled `config.example.yaml`. By default this
Create the assets plugin's config.yaml from the bundled config.example.yaml. By default this
writes a repo-local config at <repo-root>/.claude/assets/config.yaml (issue #127 — aligns
with the .claude/ convention). Use --global to write the per-user config at
~/.claude/plugins/assets/config.yaml instead.
/init-assets-config — repo-local: <repo-root>/.claude/assets/config.yaml
/init-assets-config --global — global: ~/.claude/plugins/assets/config.yaml
/init-assets-config --force — overwrite an existing config (combine with --global if needed)
Parse --global and --force from the invocation arguments (order-independent; both may be
present). Anything else is unrecognized — surface a usage line and stop.
Resolve the target path.
--global was passed: TARGET="${HOME}/.claude/plugins/assets/config.yaml".git rev-parse --show-toplevel
TARGET="<repo-root>/.claude/assets/config.yaml".TARGET="${HOME}/.claude/plugins/assets/config.yaml" and tell the user no git repo was
detected so the config went global.Check target existence.
test -f "$TARGET"
--force was NOT passed: refuse. cat "$TARGET" so the user sees the
current config, tell them it already exists and --force is required to overwrite, and stop
(this is a successful no-op, not an error).--force WAS passed: proceed (overwrite below).Resolve the source template.
SOURCE="${CLAUDE_PLUGIN_ROOT}/config.example.yaml". This env var is set in the SKILL's
Bash context and resolves to the version-pinned plugin install dir.test -f "$SOURCE"). If $CLAUDE_PLUGIN_ROOT is unset or the file is
missing, stop with a clear error — do not write a partial config.Create the target and copy.
mkdir -p "$(dirname "$TARGET")"
cp "$SOURCE" "$TARGET"
Print the "now edit these fields" hint. Tell the user the config was written to $TARGET
and that the minimum required fields to edit before first dispatch are:
tmux.socket — path to your tmux server sockettmux.session — the tmux session name assets run inpaths.workdir — where asset clones live (must NOT be the controller's cwd)paths.signals — the signal-file directory for completion monitoringMention they can Read $TARGET to see the full annotated schema (the template is commented),
and that repo-local config overrides global field-by-field.
--global is for the per-user fallback that repo-local configs layer on
top of.Guides creation, editing, and verification of skills for AI coding agents using test-driven development with subagent scenarios. Use when authoring or debugging skills.
npx claudepluginhub meowkey-dev/machine-plugins --plugin assets