Borrowing it
Nothing to install: this file belongs to jhd3197/CachiBot. Take a copy, put it at the same path in your own repository, and replace the rules that are about this project with yours.
curl -O https://raw.githubusercontent.com/jhd3197/CachiBot/main/.claude/skills/cachibot-plugin/SKILL.mdgit clone --depth 1 https://github.com/jhd3197/CachiBotWrote this? Show the measurements
A badge with what this costs and how it scanned, read live from this page, so it follows the numbers instead of freezing them. Markdown for a README, HTML for a documentation site or a project page.
[](https://agentmods.dev/skills/jhd3197/cachibot/cachibot-plugin)<a href="https://agentmods.dev/skills/jhd3197/cachibot/cachibot-plugin"><img src="https://agentmods.dev/badge/skills/jhd3197/cachibot/cachibot-plugin.svg" alt="Measured on agentmods" height="20"></a>What it costs to keep this loaded
Counted locally with the o200k_base tokenizer, which is exact for GPT models; Claude uses its own tokenizer and its counts differ. Treat this as one consistent yardstick across the catalogue rather than a bill. Prices are per million input tokens.
| Model | Per session | Once invoked |
|---|---|---|
| Fable 5.1 | $0.00068 | $0.01763 |
| Opus 5 | $0.00034 | $0.00881 |
| Sonnet 5 | $0.00014 | $0.00353 |
| Haiku 4.5 | $0.00007 | $0.00176 |
Grade A, and why
cachibot-plugin scanned grade A with 0 findings against 26 rules in 11 categories — prompt injection, anti-refusal, data exfiltration, privilege escalation, supply chain, agent snooping, system-prompt leakage, SSRF and excessive agency — measured 8d ago.
A static scan of the body, not an audit. Every finding is printed with the line that produced it so you can judge whether it matters here. A mod is markdown that instructs an agent; that is exactly why what it instructs is worth reading.
Nothing flagged
None of the 26 patterns this scan looks for appear in this file: no shell pipes, no recursive deletes, no credential paths, no hidden text, no instruction-override or anti-refusal phrasing, no agent-config snooping. That is not a guarantee, it is the absence of the things that are checkable.
How it starts
The opening of the file, as written. The whole thing — 234 lines — stays where its author put it; the contents beside it link to each section on GitHub.
CachiBot Plugin Creation
Create new plugins that expose tools to the CachiBot agent. Plugins are capability-gated, meaning they're only loaded when a bot has the corresponding capability enabled.
Architecture Overview
- Base class:
CachibotPluginextends Tukuy'sTransformerPlugin - Context:
PluginContextcarries config, sandbox, bot_id, tool_configs, bot_models - Skills: Each plugin exposes tools via Tukuy's
@skilldecorator - Registry:
PluginManagerbridges plugin skills to Prompture'sToolRegistry
Step-by-Step Process
1. Create the Plugin File
Create cachibot/plugins/<your_plugin>.py:
"""
<Description> plugin — <tool_name> tool.
<What it does and what external services it uses.>
"""
import logging
from tukuy.manifest import PluginManifest, PluginRequirements
from tukuy.skill import ConfigParam, RiskLevel, Skill, skill
from cachibot.plugins.base import CachibotPlugin, PluginContext
logger = logging.getLogger(__name__)
class YourPlugin(CachibotPlugin):
"""Provides the <tool_name> tool for <purpose>."""
def __init__(self, ctx: PluginContext) -> None:
super().__init__("<plugin_name>", ctx)
self._skills_map = self._build_skills()
@property
def manifest(self) -> PluginManifest:
return PluginManifest(
name="<plugin_name>",
display_name="<Display Name>",
icon="<lucide-icon-name>",
group="<group>", # e.g. "Creative", "Utility", "Integration"
requires=PluginRequirements(network=True), # set True if network needed
)
def _build_skills(self) -> dict[str, Skill]:
ctx = self.ctx
@skill(
name="<tool_name>",
description="<Clear description of what the tool does for the LLM>",
category="<category>",
tags=["<tag1>", "<tag2>"],
side_effects=False, # True if it modifies external state
requires_network=True, # True if it makes network calls
display_name="<Display Name>",
icon="<icon>",
risk_level=RiskLevel.MODERATE, # SAFE, MODERATE, DANGEROUS, CRITICAL
config_params=[
ConfigParam(
name="<param_name>",
display_name="<Param Display Name>",
description="<What this config does>",
type="<type>", # "string", "number", "select", "boolean"
default=<default_value>,
# For select: options=["opt1", "opt2"]
# For number: min=0, max=100, step=1, unit="seconds"
),
],
)
async def your_tool(arg1: str, arg2: str = "") -> str:
"""Tool function docstring (shown in API docs).
Args:
arg1: Description of arg1.
arg2: Description of arg2. Defaults to plugin config.
Returns:
Human-readable result string.
"""
# Access per-tool config
tool_cfg = ctx.tool_configs.get("<tool_name>", {})
effective_arg2 = arg2 or tool_cfg.get("<param_name>", "<default>")
# Access bot model slots (if tool uses a specific model)
model = ""
if ctx.bot_models:
model = ctx.bot_models.get("<slot>", "") # "image", "audio", etc.
try:
# Implementation here
result = "..."
return result
except Exception as exc:
logger.error("<tool_name> failed: %s", exc, exc_info=True)
return f"Error: <tool_name> failed: {exc}"
return {"<tool_name>": your_tool.__skill__}
@property
def skills(self) -> dict[str, Skill]:
return self._skills_map
What this file has done since we first saw it
Hashed on every crawl. A supply-chain change to an agent config is a question of when, not whether, so the history is kept rather than the latest state alone.
- 8d ago First seen · 234 lines · 68 tokens per session scan A e7e280ea1023
cachibot-plugin is a skill published in the GitHub repository jhd3197/CachiBot (19 stars, last pushed 6mo ago), licensed MIT. It adds 68 tokens to every session and 1,763 once invoked, about $0.0003 per session on Opus 5. A static security scan graded it A with 0 findings. No closer match exists in the catalogue, so it is treated as the original; first seen 2026-08-30.
Other skills, from other repositories
docx
Use this skill whenever the user wants to create, read, edit, or manipulate Word documents (.docx files). Triggers include: any mention of 'Word doc', 'word document', '.docx', or requests to produce professional documents with formatting like tables of contents, headings, page numbers, or letterheads. Also use when…
workspace-organizing
Use whenever the agent creates, writes, moves, or renames a file in a team/delegate (shared) workspace, OR when the user asks to organize, clean up, restructure, audit, or find files in any workspace or the Vault, OR when starting a multi-file task or named project. Enforces a purpose-based folder convention (flat…
xlsx
Use this skill any time a spreadsheet file is the primary input or output. This means any task where the user wants to: open, read, edit, or fix an existing .xlsx, .xlsm, .csv, or .tsv file (e.g., adding columns, computing formulas, formatting, charting, cleaning messy data); create a new spreadsheet from scratch or…
goclaw
Use this skill when administering, operating, or debugging a GoClaw gateway through the GoClaw CLI/runtime package. It covers CLI discovery, safe command inspection, gateway health/config diagnostics, agents, skills, MCP/tools, runtime packages, credentials, traces, sessions, channels, providers, cron/jobs, and…
Use this skill whenever the user wants to do anything with PDF files. This includes reading or extracting text/tables from PDFs, combining or merging multiple PDFs into one, splitting PDFs apart, rotating pages, adding watermarks, creating new PDFs, filling PDF forms, encrypting/decrypting PDFs, extracting images, and…
pptx
Use this skill any time a .pptx file is involved in any way — as input, output, or both. This includes: creating slide decks, pitch decks, or presentations; reading, parsing, or extracting text from any .pptx file (even if the extracted content will be used elsewhere, like in an email or summary); editing, modifying…