YOINK (You Only Implement Native Knowledge) is an AI agent that removes complex dependencies by reimplementing only what you need. YOINK is currently built as a Claude Code plugin that decomposes third-party dependencies into internal replacements.
FAQ
yoink is a Claude Code plugin with 4 hand-picked skills for development work, indexed on Flowy. Install it with the command on its page. It includes curate-tests, decompose, setup. Its skills do not fire on their own yet. Request auto-invocation to have Flowy route them as you prompt. Free and open source.
> /plugin marketplace add theogbrand/yoink> /plugin install yoink@yoink-marketplace
Repo: theogbrand/yoink
YOINK (You Only Implement Native Knowledge) is an AI agent that removes complex dependencies by reimplementing only what you need.
YOINK is currently built as a Claude Code plugin that decomposes third-party dependencies into internal replacements. Instead of importing a 50k-line SDK for three function calls, point yoink at the package, describe what you need, and it reimplements only the functionality you actually use, verified against the expectations of the original library's tests.
They say "don't reinvent the wheel" but what if you could?
AI agents are getting good enough to own code end-to-end, and with supply chain attacks accelerating, fewer dependencies means less attack surface.
Classical software engineering would have you believe that dependencies are good (we're building pyramids from bricks), but imo this has to be re-evaluated, and it's why I've been so growingly averse to them, preferring to use LLMs to "yoink" functionality when it's simple enough and possible. - Andrej Karpathy
OpenAI's harness engineering article echoed this: agents reason better from reimplemented functionality they have full visibility into, over opaque third-party libraries.
In some cases, it was cheaper to have the agent reimplement subsets of functionality than to work around opaque upstream behavior from public libraries. For example, rather than pulling in a generic p-limit-style package, we implemented our own map-with-concurrency helper: itβs tightly integrated with our OpenTelemetry instrumentation, has 100% test coverage, and behaves exactly the way our runtime expects. - Ryan Lopopolo (OpenAI)
We are making this capability accessible to anyone.
Add the yoink marketplace and install the plugin from within Claude Code:
/plugin marketplace add theogbrand/yoink
/plugin install yoink@yoink-marketplace
/reload-plugins
Navigate to any project and run /yoink:yoink:
/yoink:yoink "Replace usage of litellm with my own implementation" --url "https://github.com/BerriAI/litellm"
yoink runs three skills sequentially:
/yoink:setup clones the target repo and scaffolds a local replacement package./yoink:curate-tests studies the reference implementation and generates new tests, verified against the expectations of the original test suite./yoink:decompose determines dependencies to keep or decompose, based on a set of principles we defined, such as "keeping foundational primitives regardless of how narrow they are used".The /yoink:yoink command runs all three in sequence.
Curate tests from a target package, then decompose its dependencies into a local, dependency-free replacement. Runs in three phases: setup (Phase 1), test curation (Phase 2), and dependency decomposition (Phase 3).
Usage:
/yoink:yoink "<prompt>" --url "<github_url>" [--package "<package_name>"] [--skip-test-discoverer]
Options:
--url <github_url> - GitHub repository URL to clone and decompose (required)--package <package_name> - Override the package name (defaults to the repo name from the URL)--skip-test-discoverer - Skip the test discovery step (test generation still works without discovered tests)The individual phases of /yoink:yoink are also available as separate skills, useful if a run fails midway and you need to resume from a specific phase:
Scaffold the project: clone the target repo and install the real library for test validation.
Usage:
/yoink:setup --url "https://github.com/BerriAI/litellm"
Options:
--url <github_url> - GitHub repository URL to clone (required)--package <package_name> - Override the package name (defaults to the repo name from the URL)Phase 2: Generate and discover tests, then validate them against the real library. Requires /yoink:setup to have been run first.
Usage:
/yoink:curate-tests "I want to replace the usage of litellm in @sample.md with my own implementation" --package litellm
Options:
--package <package_name> - The target package name (required)Phase 3: Dependency decomposition. Seeds the queue with the target package and iteratively decomposes each dependency. Requires /yoink:curate-tests to have been completed first.
Usage:
/yoink:decompose --package litellm
Options:
--package <package_name> - The target package name (required)What is this good for?
What is this not good for?
To run yoink from a local clone instead of the marketplace:
claude --plugin-dir ./plugins/yoink
An example prompt is included in examples/litellm-sample.md to try locally:
git clone https://github.com/theogbrand/yoink.git
mkdir litellm-lite
cp ./yoink/examples/litellm-sample.md ./litellm-lite/
cd litellm-lite
claude --plugin-dir ../yoink/plugins/yoink
/yoink:yoink "Replace the usage of litellm in @litellm-sample.md with my own implementation" --url "https://github.com/BerriAI/litellm"
After editing skill or agent files, run the linter to validate conventions and regenerate the flow visualization in ORCHESTRATION_FLOW.md:
uv run python scripts/orchestration-linter.py --write
See CONTRIBUTING.md for more.
.agents/
skills/
plugin-settings/
examples/
create-settings-command.md
example-settings.md
read-settings-hook.sh
references/
parsing-techniques.md
real-world-examples.md
scripts/
parse-frontmatter.sh
validate-settings.sh
SKILL.md
plugin-structure/
examples/
advanced-plugin.md
minimal-plugin.md
standard-plugin.md
README.md
references/
component-patterns.md
manifest-reference.md
SKILL.md
skill-creator/
agents/
analyzer.md
comparator.md
grader.md
assets/
eval_review.html
eval-viewer/
generate_review.py
viewer.html
LICENSE.txt
references/
schemas.md
scripts/
__init__.py
aggregate_benchmark.py
generate_report.py
improve_description.py
package_skill.py
quick_validate.py
run_eval.py
run_loop.py
utils.py
SKILL.md
.claude/
.claude-plugin/
marketplace.json
settings.json
skills/
plugin-settings
plugin-structure
skill-creator
.gitignore
AGENTS.md
ARCHITECTURE.md
CLAUDE.md
CONTRIBUTING.md
examples/
litellm-sample.md
LICENSE
ORCHESTRATION_FLOW.md
plugins/
yoink/
.claude-plugin/
plugin.json
agents/
decomp-evaluator.md
decomp-implementer.md
test-discoverer.md
test-generator.md
hooks/
hooks.json
stop-hook.sh
subagent-start-hook.sh
subagent-stop-hook.sh
LICENSE
scripts/
rewrite_imports.py
run_tests.py
skills/
curate-tests/
SKILL.md
decompose/
scripts/
activate-inner-yoink-loop.sh
decomp.py
SKILL.md
setup/
assets/
template-__init__.py
template-.gitignore
template-pyproject.toml
scripts/
prepare.py
setup.sh
SKILL.md
yoink/
SKILL.md
pyproject.toml
README.md
scripts/
orchestration-linter.py
skills-lock.json
uv.lockΒ© 2026 Flowy Β· Free and open source
Built for Claude Code Β· Not affiliated with Anthropic