wick-plugin-service

wick-plugin-service is a skill for Claude Code, Codex from yogasw/wick. It costs 199 tokens per session (4,822 once invoked), scanned A, original, MIT.

A guide for building, changing, testing, or debugging a Wick service plugin. A service plugin is a separate web server that Wick keeps running and exposes under a configured URL path.

In plain words
What is it for?
It is for webhook receivers, public or token-protected APIs, pages for signed-in users, and remote agents connected through Wick.
Why use it?
It explains the service contract, routing, configuration, authentication, process lifecycle, and remote-agent integration so changes fit how Wick hosts these servers.

Skill for Claude CodeCodex

Written for no agent in particular: nothing here depends on one.

Good fit It is for webhook receivers, public or token-protected APIs, pages for signed-in users, and remote agents connected through Wick.

Compare 6 skills from other repositories ↓
Install with agentmods
npx agentmods add skills/yogasw/wick/wick-plugin-service
Install

Getting it into your agent

One page per mod, every tool's command on it. A separate URL per tool would split the same page into five that compete with each other.

Any agent
npx skills add yogasw/wick --skill wick-plugin-service
Clone the repo
git clone --depth 1 https://github.com/yogasw/wick

Made for: Claude Code, Codex.

Wrote 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.

agentmods badge for wick-plugin-service

README.md
[![agentmods](https://agentmods.dev/badge/skills/yogasw/wick/wick-plugin-service/github.svg)](https://agentmods.dev/skills/yogasw/wick/wick-plugin-service)
Your own site
<a href="https://agentmods.dev/skills/yogasw/wick/wick-plugin-service"><img src="https://agentmods.dev/badge/skills/yogasw/wick/wick-plugin-service/github.svg" alt="Measured on agentmods" height="20"></a>

Or the 80×15 button, for a site that already has a row of RSS and ATOM ones. Only the verdict fits; the numbers stay here.

agentmods 80×15 button for wick-plugin-service

Your own site · 80×15
<a href="https://agentmods.dev/skills/yogasw/wick/wick-plugin-service"><img src="https://agentmods.dev/badge/skills/yogasw/wick/wick-plugin-service.svg" alt="Reviewed on agentmods" width="80" height="20"></a>
Per session 199 Skills are progressive disclosure: only the name and description are preloaded; the body loads when the skill is used.
When invoked 4,822 The whole file, excluding the scripts and references it only reads on demand.
Security scan A 0 findings. A grade says what 26 rules found in the file — not that it is safe.
Origin original No closer match found in the catalogue.
Token cost

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.

ModelPer sessionOnce invoked
Fable 5.1 $0.00199 $0.04822
Opus 5.5 $0.00080 $0.01929
Sonnet 5.5 $0.00040 $0.00964
Haiku 4.5 $0.00020 $0.00482

Measured yesterday against content hash 4cbea1d9a185, method: parsed. Prices are Anthropic first-party input rates as of 2026-10-07, from the pricing page.

Security

Grade A, and why

wick-plugin-service 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 yesterday.

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.

internal/agents/skillsync/builtin/wick-plugin-service/SKILL.md · 317 lines

How it starts

The opening of the file, as written. The whole thing — 317 lines — stays where its author put it; the contents beside it link to each section on GitHub.

Service plugins — always-on at /x/{key}/*

Scope: the service plugin contract and the host that runs it. Picking a kind, templates and wick plugin build are in wick-plugin-authoring; installing, sources, signing and troubleshooting installs are in wick-plugins. Docs: docs/plugins/authoring-service.md and docs/plugins/service-a2a.md.

Mental model

A service plugin is a plain http.Handler in its own process. wick:

  1. starts it at boot (and after a reload) and keeps it running — a crash is restarted with backoff (internal/services/plugin/supervisor.go); with auto-off it may sleep while idle and wake on the next request;
  2. reverse-proxies /x/{key}/* to it over a unix socket, deciding auth per route from the manifest (host.go ServeHTTP);
  3. pushes its config over the gRPC control service (Configure) after every spawn and on every save;
  4. optionally drives it as a Team remote agent (remote_source).

It reuses the tool-plugin machinery (HTTP on $WICK_PLUGIN_SOCKET + the Tool control service Schema/Configure/Health); it differs in lifecycle (never idle-killed) and mount point.

Tool plugin Service plugin
SDK pkg/plugin/toolplugin + pkg/tool pkg/service
Mounted at /tools/{key} (wick layout, login) /x/{key}/*, no wick layout
Auth wick login + tool access; WebhookGroup public per route: public / token / wick-session
Lifetime spawned on first request, idle-killed always on, supervised
Router tool.Router / tool.Ctx stdlib *http.ServeMux (Go 1.22 patterns)

Pick a service when something outside wick must reach the code at any time (A2A agent, webhook relay, bot bridge) or when it keeps in-memory state between requests. A page for signed-in users → tool. Something the LLM calls → connector.

Files

Path What
pkg/service/service.go Module, Meta, Route, Env, RemoteSource, Describer, BaseURL, auth consts
pkg/service/serve.go ServeService, Manifest, Handler, remote RPC mount, --dump-manifest
pkg/service/a2aservice/ Mount(mux, Card, Reply) — A2A agent card + JSON-RPC on top of a reply func
pkg/plugin/service.go wire types: ServiceModule, ServiceRoute, Auth*, CapRemoteSource, RemotePath*, RemoteTurn/Event/SendResult, EnvPluginToken, EnvBaseURL, MatchRoute
plugins/service/_template/ starter (main.go, service.go, VERSION, README.md)
plugins/service/example_a2a_repeater/ full example: A2A + RemoteSource, with tests
internal/services/plugin/host.go load, /x/ proxy, auth, header injection
internal/services/plugin/supervisor.go process lifecycle, backoff, ring log
internal/services/plugin/config.go config store (owner service_plugin:<key>), SetConfig
internal/services/plugin/tokens.go access tokens (persisted, hashed) + callback tokens (memory)
internal/services/plugin/callback.go /x/-/api/... callback API, HandleCallback, CallerFrom
internal/services/plugin/admin.go /manager/api/service-plugins admin API, RemoteSources
internal/services/plugin/plugintest/ builds + runs the real repeater under a Host
internal/agents/remote/pluginremote/ Team remote agent adapter over /_wick/remote/*
internal/tools/agents/api_team_plugin_remote.go /tools/agents/api/team/plugin-sources, /tools/agents/api/team/plugin-remote
fe/manager/src/lib/components/services/ServiceDetail.svelte admin page
internal/pkg/api/server.go (search servicePlugins) wiring

Read the full file on GitHub · 317 lines

Changes

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.

  1. yesterday First seen · 317 lines · 199 tokens per session scan A 4cbea1d9a185

Subscribe to this mod's changes

wick-plugin-service is a skill published in the GitHub repository yogasw/wick (5 stars, last pushed yesterday), licensed MIT. It adds 199 tokens to every session and 4,822 once invoked, about $0.0008 per session on Opus 5.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-10-06.

Related

Other skills, from other repositories

event-driven-architecture

Kafka, RabbitMQ, SQS/SNS, event sourcing, CQRS, saga patterns, dead letter queues, and idempotency. Use when designing asynchronous systems, implementing message-driven workflows, or building event streaming pipelines.

travisjneuman/.claude · 50 tokens

edge-computing

Edge computing with Cloudflare Workers, Deno Deploy, Bun, Vercel Edge Functions, AWS Lambda@Edge, and edge databases (Turso, D1, DynamoDB Global Tables). Use when building low-latency edge applications, edge-side rendering, or globally distributed compute.

travisjneuman/.claude · 63 tokens

hono-ops

Hono on Cloudflare Workers - composition, middleware, typed bindings, validation, RPC, streaming, testing. Use for: hono, hono middleware, app.route, hono rpc, c.env bindings, onError, zValidator, vitest-pool-workers, spa fallback worker.

0xDarkMatter/claude-mods · 61 tokens

edge-computing

Cloudflare Workers, Deno Deploy, Vercel Edge Functions, edge patterns (geo-routing, caching). Use when implementing edge compute, CDN logic, or global low-latency APIs.

TheBeardedBearSAS/claude-craft · 0 tokens

api-gateway

API Gateway patterns (Kong, Traefik, AWS API Gateway) — rate limiting, auth, routing, versioning. Use when implementing API gateway, reverse proxy, or API management.

TheBeardedBearSAS/claude-craft · 0 tokens

terraform-infrastructure

Structures, writes, and reviews Terraform infrastructure code. Covers module layout, remote state, workspace strategy, variable and secrets handling, CI plan/apply pipeline, naming conventions, and multi-region deployment patterns (provider aliases, per-region state, failover strategies), while delegating shared risk…

soulcodex/agentic · 96 tokens