yak

Routes Yaklang programming and hot-patch tasks to specialized skill topics.

10|1|Updated Jun 16, 2026
One-click install
npx skills add https://github.com/yaklang/yak-skills --skill yak-yaklang
Or copy as Structured Prompt for Agent▼
Please help me install this Agent Skill.
Skill: yak
Source: https://github.com/yaklang/yak-skills/tree/main/skills/yak
Command: npx skills add https://github.com/yaklang/yak-skills --skill yak-yaklang

SYSTEM DOCUMENTATION & REQUIREMENTS

What problem does it solve? When working with Yaklang scripting, Yak hot patching (MITM / Web Fuzzer / global), or Yakit plugin development, it is hard to know which mechanism, hook signature, or testing convention applies. This Skill acts as the central router of the yak-skills knowledge base, directing each task to the right specialized topic. ## Core Features & Use Cases - Task Routing Table: Maps task signals (e.g., MITM traffic hijacking, Fuzzer encryption, Yakit UI output, plugin writing) to the correct specialized skill such as mitm-hotpatch, webfuzzer-hotpatch, or yakit-native-plugin. - Three-Layer Hot-Patch Mental Model: Explains the execution order of global, MITM, and Web Fuzzer hot patches, including hook signature differences like forward/drop versus return-value submission. - YAK_MAIN Testing Convention: Defines the hook-registration plus if YAK_MAIN { runSelfTest() } pattern so scripts can be self-tested via go run common/yak/cmd/yak.go and safely pasted back into Yakit. - Use Case: You need to write a Web Fuzzer hot-patch script that decrypts AES-CBC traffic. Load this Skill first, follow the routing table to webfuzzer-hotpatch, then apply the YAK_MAIN self-test pattern to verify your script locally before deploying it in Yakit. ## Quick Start Ask the AI to load the yak skill and recommend which specialized skill to use for writing an MITM hot-patch script that hijacks and modifies HTTP requests.

Frequently Asked Questions about yak

High-intent search queries and answers about installing and using this skill.

FAQPage Schema
How do I choose the right Yak hot-patch skill for my task?▼

Use the routing table in this Skill: MITM proxy hijacking goes to mitm-hotpatch, single-tab Fuzzer encryption or retry logic goes to webfuzzer-hotpatch, and system-wide shared rules go to global-hotpatch. Match your task signal to the table row.

What is the difference between MITM and Web Fuzzer hot-patch hooks?▼

MITM hijack hooks like hijackHTTPRequest submit results via forward(pkt) or drop(), while Fuzzer beforeRequest/afterRequest hooks submit via return values. Their mirrorHTTPFlow signatures also differ in parameter lists.

How do I test a Yak hot-patch script locally before using it in Yakit?▼

Wrap self-test logic in `if YAK_MAIN { runSelfTest() }` and run it with `go run common/yak/cmd/yak.go <file>` or `yak <file>`. Yakit sets YAK_MAIN to false when loading, so the self-test never runs inside the tool.

Why doesn't my func main() run in a Yak script?▼

Yak does not automatically call func main(); only top-level statements execute. Use the convention `if YAK_MAIN { main() }` so the entry point runs from the command line but not when loaded as a plugin.

Can hot-patch hooks share state across concurrent requests?▼

Hooks are called concurrently, so top-level globals must be read-only constants. For aggregation use sync.Map, sync.NewMutex(), or db.*/risk.* APIs instead of mutating shared slices or maps, which causes data races.