Sandboxed.sh library-management
install
source · Clone the upstream repo
git clone https://github.com/Th0rgal/sandboxed.sh
Claude Code · Install into ~/.claude/skills/
T=$(mktemp -d) && git clone --depth=1 https://github.com/Th0rgal/sandboxed.sh "$T" && mkdir -p ~/.claude/skills && cp -r "$T/.opencode/skill/library-management" ~/.claude/skills/th0rgal-sandboxed-sh-library-management && rm -rf "$T"
manifest:
.opencode/skill/library-management/SKILL.mdsource content
Sandboxed.sh Library Management
The Sandboxed.sh Library is a Git-backed configuration repo that stores reusable skills, agents, commands, tools, rules, MCP servers, and workspace templates. Use the
library-* tools to
read and update that repo.
When to Use
- Creating or updating skills, agents, commands, tools, rules, or MCPs
- Syncing library git state (status/sync/commit/push)
- Updating workspace templates or plugins in the library
When NOT to Use
- Local file operations unrelated to the library
- Running missions or managing workspace lifecycle
Tool Map (file name + export)
Tool names follow the pattern
<filename>_<export>.
Skills (library-skills.ts
)
library-skills.tslibrary-skills_list_skillslibrary-skills_get_skilllibrary-skills_save_skilllibrary-skills_delete_skill
Agents (library-agents.ts
)
library-agents.tslibrary-agents_list_agentslibrary-agents_get_agentlibrary-agents_save_agentlibrary-agents_delete_agent
Commands / Tools / Rules (library-commands.ts
)
library-commands.ts- Commands:
,library-commands_list_commands
,library-commands_get_command
,library-commands_save_commandlibrary-commands_delete_command - Tools:
,library-commands_list_tools
,library-commands_get_tool
,library-commands_save_toollibrary-commands_delete_tool - Rules:
,library-commands_list_rules
,library-commands_get_rule
,library-commands_save_rulelibrary-commands_delete_rule
MCPs + Git (library-git.ts
)
library-git.ts- MCPs:
,library-git_get_mcpslibrary-git_save_mcps - Git:
,library-git_status
,library-git_sync
,library-git_commitlibrary-git_push
Procedure
- List existing items
- Get current content before editing
- Save the full updated content (frontmatter + body)
- Commit with a clear message
- Push to sync the library remote
File Formats
Skill (skill/<name>/SKILL.md
)
skill/<name>/SKILL.md--- name: skill-name description: What this skill does --- Instructions for using this skill...
Agent (agent/<name>.md
)
agent/<name>.md--- description: Agent description mode: primary | subagent model: provider/model-id hidden: true | false color: "#44BA81" tools: "*": false "read": true "write": true permission: edit: ask | allow | deny bash: "*": ask rules: - rule-name --- Agent system prompt...
Command (command/<name>.md
)
command/<name>.md--- description: Command description model: provider/model-id subtask: true | false agent: agent-name --- Command prompt template. Use $ARGUMENTS for user input.
Tool (tool/<name>.ts
)
tool/<name>.tsimport { tool } from "@opencode-ai/plugin" export const my_tool = tool({ description: "What it does", args: { param: tool.schema.string().describe("Param description") }, async execute(args) { return "result" }, })
Rule (rule/<name>.md
)
rule/<name>.md--- description: Rule description --- Rule instructions applied to agents referencing this rule.
MCPs (mcp/servers.json
)
mcp/servers.json{ "server-name": { "type": "local", "command": ["npx", "package-name"], "env": { "KEY": "value" }, "enabled": true }, "remote-server": { "type": "remote", "url": "https://mcp.example.com", "headers": { "Authorization": "Bearer token" }, "enabled": true } }
Guardrails
- Always read before updating to avoid overwrites
- Keep names lowercase (hyphens allowed) and within 1-64 chars
- Use descriptive commit messages
- Check
before pushinglibrary-git_status