Distill
Finds repeated multi-step workflows in session history and proposes a skill, command, or subagent for them.
Quick Answer & Overview
Distill is an open-source (MIT) OpenCode V2 plugin by @JadMadi. It resolves: The same procedure gets repeated by hand instead of becoming a reusable artifact, and nothing should be written until you apply it.. Installed via opencode plugin add github:jadmadi/opencode-distill, it operates locally with 0% telemetry.
opencode plugin add github:jadmadi/opencode-distill Local manual setup:
Copy distill.ts into ~/.config/opencode/plugins/ and restart the TUI.
The Problem It Solves
The same procedure gets repeated by hand instead of becoming a reusable artifact, and nothing should be written until you apply it.
Slash Commands
| Command | Description & Usage |
|---|---|
/distill | Propose reusable artifacts from session history, list proposals, or apply one. |
Design Guardrails & Limitations
Writes only on an explicit /distill apply and never overwrites an existing artifact. It calls ctx.generate.text, so set DISTILL_MODEL on providers that reject transient generation.
Technical Specifications
- Target Host
- OpenCode V2 (CLI & TUI)
- Tested Runtime
- OpenCode
v2.0.16(builtUnder-2.0.16) - Artifact File
distill.ts- Version Scheme
- CalVer (YYYY.MM.MICRO) · Current:
v2026.9.0 - Default Install Path
~/.config/opencode/plugins/distill.ts- License
- MIT (Open Source)
- Last Updated
- 2026-09-25
Frequently Asked Questions
What problem does Distill solve?
The same procedure gets repeated by hand instead of becoming a reusable artifact, and nothing should be written until you apply it.
How do I install Distill in OpenCode V2?
Run the terminal command: `opencode plugin add github:jadmadi/opencode-distill`. The runtime clones the repository into `~/.config/opencode/plugins/distill.ts` and activates it in your next session. Alternatively: Copy distill.ts into ~/.config/opencode/plugins/ and restart the TUI.
What are the guardrails and limitations for Distill?
Writes only on an explicit /distill apply and never overwrites an existing artifact. It calls ctx.generate.text, so set DISTILL_MODEL on providers that reject transient generation.
What slash commands does Distill provide?
/distill (Propose reusable artifacts from session history, list proposals, or apply one.)