Wsl Notify
Windows toast notifications for OpenCode — permission, question, session completion and error events. Zero dependencies, one entrypoint for OpenCode V1 and V2, works from WSL (powershell.exe interop) and native Windows.
0
37
近 7 天 37
29.7
生态多维模型
2 小时前
2026-10-21
快速安装与配置
opencode.json写入当前项目的 opencode.json,只对这个仓库生效。
opencode.json
{
"$schema": "https://opencode.ai/config.json",
"plugin": ["wsl-notify@1.0.5"]
}写入 ~/.config/opencode/opencode.json,对所有项目生效。
~/.config/opencode/opencode.json
{
"$schema": "https://opencode.ai/config.json",
"plugin": ["wsl-notify@1.0.5"]
}若你要在本地改造这个插件,先装到项目里再从本地路径引用。
shell
pnpm add -D wsl-notifyOpenCode 启动时会通过内嵌运行时自动加载 npm 依赖并缓存至本地目录,无需手动在全局环境执行安装。
Reusable agent skills for opencode. Each skill is a directory with a
SKILL.md entry point (YAML frontmatter: name, description) plus optional assets/,
scripts/, and tests/.
At runtime everything a skill writes lives in one project-local workspace root, .pdca/ — helpers
it runs (.pdca/scripts/), cycle status files (.pdca/status/) and evidence
(.pdca/<task>/rv<k>/). The skill's own scripts/ is the source of those helpers; the project runs
its copies from .pdca/scripts/.
Contents
Skills live under opencode/.
| Skill | Description |
|---|---|
pdca-entry |
Single entry point (umbrella) for the family: classifies a task and routes it to exactly one contract — collection, incremental, .NET, coder or the neutral cycle. |
pdca |
Domain-neutral PDCA cycle: PLAN → DO → CHECK → ACT with transition gates, evidence-based CHECK, escalation accounting, durable status, and recovery. |
pdca-coder |
Stack-agnostic PDCA executor for software-engineering tasks (code, tests, docs, refactoring, config). Picks the build/test/lint toolchain per language. |
pdca-collection |
Runs a batch of tasks as parallel PDCA lanes (worktree per group, branch chain + auto-commit, --no-ff merge of completed groups); a batch may contain single-cycle units and sequential incremental-campaign units. |
pdca-dotnet |
PDCA cycle for .NET/C# tasks: parallel DO/CHECK streams, role routing, ACT handoff. |
pdca-incremental |
Drives a goal without a committed whole-volume plan as a chain of small PDCA increments: one accepted measurement per step, baseline chain, one campaign status file, explicit stop conditions, plus repair and verify step kinds; a campaign can also be a unit of a collection batch and then stays sequential. |
The five contracts share the same cycle: a cheap orchestrator drives roles (planner, coder,
check, scout, escalate), every CHECK is evidence-based, and a required approval that cannot
be obtained is a STOP rather than an open question. pdca-entry sits above them: it does not
run a cycle, it only classifies the task and hands it to exactly one contract.
Install
Install a single skill with the skills CLI — one command per skill:
npx skills add AlexeyShirshov/skills@pdca-entry
npx skills add AlexeyShirshov/skills@pdca
npx skills add AlexeyShirshov/skills@pdca-coder
npx skills add AlexeyShirshov/skills@pdca-dotnet
npx skills add AlexeyShirshov/skills@pdca-collection
npx skills add AlexeyShirshov/skills@pdca-incremental
Add -g for a user-level install (all projects) and -y to skip prompts:
npx skills add AlexeyShirshov/skills@pdca-coder -g -y
Without -g the CLI targets the current project.
Installing a skill is only half of the setup: the cycle dispatches subagents, so the host needs
the role agents and the runner pdca-orchestrator (both ship in the skill's assets/agents/),
nested delegation (experimental.subagent_depth) and subagent permissions. Every agent id is
pdca-prefixed (pdca-planner, pdca-executor, pdca-check, pdca-escalate, pdca-scout,
pdca-security-auditor, pdca-orchestrator), so it cannot collide with an existing
planner/coder/scout. The full checklist — with a verification step and a troubleshooting table —
is in docs/install.md (docs/ru/install.md); an agent
can perform the whole checklist from docs/install-prompt.md.
From a checkout
Clone the repository and copy the skill(s) you want into an opencode skills directory.
Global (all projects):
cp -r opencode/pdca opencode/pdca-coder opencode/pdca-collection opencode/pdca-dotnet \
opencode/pdca-incremental ~/.config/opencode/skills/
Per project:
mkdir -p .opencode/skills
cp -r opencode/pdca* .opencode/skills/
Skills are discovered by the name field in their frontmatter.
Usage
Only pdca-entry is advertised to the model for automatic selection. The five contracts set
metadata.opencode/autoinvoke: false: they stay registered but load only when the user names them
explicitly (skill pdca-dotnet, @pdca-dotnet) or when the entry hands off.
Invoke a skill by name, e.g. in an opencode session:
pdca-entry— "by the cycle" / "via PDCA" / "по циклу": the umbrella that routes the task to one contract below (an explicitly named contract bypasses it).pdca— only when explicitly named (domain-neutral cycle).pdca-coder— explicitly, for code tasks of any stack.pdca-dotnet— explicitly, for .NET/C# work.pdca-collection— for a list of independent tasks / a milestone; a collection batch may contain cycle units and campaign units, and a campaign unit stays sequential (one lane, one step at a time).pdca-incremental— for a goal without a committed whole-volume plan (per-task plans may already exist), moved forward in steps; includes per-steprepairand an optional integratedverify. A campaign can also run as a unit of a collection batch.
Tests
Each skill ships a tests/ suite (plain unittest, standard library only). Run one skill:
python3 -m unittest discover -s opencode/pdca/tests -p 'test_*.py' -v
Some checks compare the skill against host-side artifacts that live in a separate config
repository (config/agents/, config/profiles/, config/AGENTS.md, the host README.md). Those
checks skip unless you point at that checkout:
OPENCODE_CONFIG_REPO=/path/to/opencode-config \
python3 -m unittest discover -s opencode/pdca-dotnet/tests -p 'test_*.py'
pdca-collection additionally ships a dependency-free bash check of its git model (branch
chain, --no-ff merge of completed groups, conflict detection, single-group isolation, and an
incomplete group preserved but never merged) on throwaway temp repositories. unittest discover
runs it through tests/test_git_model.py; it can also be run directly:
bash opencode/pdca-collection/tests/git-model-sim.sh
Plugins
Plugins live under opencode/plugins/, one directory per package.
| Plugin | Description |
|---|---|
wsl-notify |
Windows toast notifications for OpenCode — permission, question, completion and error events. Zero dependencies, one entrypoint for OpenCode V1 and V2, works from WSL (powershell.exe interop) and native Windows. |
opencode-roslyn |
C# semantic analysis for OpenCode V2 — the roslyn tool answers structure/types/symbols/members/refs/callers/implementations/rename through the roslynq CLI (Roslyn + MSBuildWorkspace), with permissions, progress and cancellation. V2 has no LSP runtime yet; this is the semantic answer in the meantime. |
opencode-sidebar-plugins |
A Plugins section in the OpenCode V2 CLI sidebar — every loaded plugin and, by default, only those that actually reach the model context (prompt, tools, agents, skills). Classifies built-ins from their registrations, scans local and package plugin sources, and refuses to guess when a package entry cannot be resolved. |
zen-failover |
Server failover for subscription providers: on an exhausted quota it moves every agent, the default model and the active session to the fallback (ChatGPT → the same model on Console, Go → direct DeepSeek), probes the plan once a minute, and restores the original bindings as soon as the subscription answers again. Transient per-minute 429s are retried, not degraded. |
Install the published package in opencode.json(c) (plugins on V2, plugin on V1), or copy a plugin's
index.js into <config>/plugins/ and let opencode discover it locally. See each plugin's README for
options and requirements.
License
MIT © 2026 Alexey Shirshov
同类生态推荐
Smart Notify
opencode-smart-notify
Desktop notifications for OpenCode that stay quiet when auto-approve handles the request
Simple Notify
opencode-simple-notify
Desktop notification plugin for OpenCode - works on Linux (dbus) and macOS (osascript)
Notification
opencode-notification
OpenCode plugin for simple system notifications when permissions are needed, generation completes, or errors occur