From GitHub URL to running Docker stack.
One command.
Yoink clones any repository, detects its services, provisions the databases it needs, generates production Dockerfiles, repairs build failures with an autonomous LLM heal loop, and verifies live HTTP health.
The barrier isn't a missing Dockerfile.
It's everything in between.
Most tools generate a generic template and walk away. Yoink solves the entire chain from git URL to addressable, verified local stack.
Detects frontend + backend + worker simultaneously
Auto-provisions Postgres, Redis, Mongo from code refs
Captures Docker errors, patches config, and re-tests
Checks container health + port probe + HTTP 200
Persistent state for instant
yoink up / yoink statsWorks without cloud with Ollama or
--no-agent8 Deterministic Stages.
One Verified Outcome.
Click any stage below to inspect how Yoink analyzes, configures, and heals your repository.
Built for Real-World Repositories
Every feature is designed to handle edge cases, missing configs, monorepos, and broken build outputs honestly.
Autonomous Build Repair with Independent Verification
When a Docker build fails, Yoink extracts the high-priority root cause (TypeScript TS errors, npm mismatches, Python ImportError) rather than downstream noise. The bounded agent patches generated Dockerfiles, rebuilds, and independently verifies HTTP 200 reachability.
[1/3] Root cause: Vite build failed (missing rollup native binary)
[1/3] Patch applied: Added libc6-compat to Dockerfile.service-1
[1/3] Rebuilding... Succeeded! Verification: http://localhost:80 (HTTP 200)Infers 6 Backing Services
Scans env vars and SDKs. Sees DATABASE_URL? Provisions Postgres with healthchecks. Detects Upstash or Neon? Connects directly without local overhead.
14 Framework Profiles
Next.js, Vite, FastAPI, Django, NestJS, Astro, SvelteKit, and more receive bespoke, optimized multi-stage Dockerfiles rather than bloated generic images.
Zero-Input Day-2 Re-Runs
Stores authoritative state in ~/.yoink/state/<project>/yoink.lock. Subsequent runs of yoink up, yoink restart, and yoink status require zero re-detection.
5 Providers + Offline Ollama
Configure OpenAI, Anthropic Claude, Google Gemini, Groq, or 100% local Ollama. Or run in pure static mode with --no-agent (zero API keys needed).
🔒 Sandboxed SafeFS Reader
Agent file reads are strictly limited (max 5 files/round, 16 KiB caps) and reject path traversal or symlinks outside the repository.
🛡️ Immutable Source Code
The agent can only edit generated files in yoink-outputs/. Your repository source files are never altered.
🔑 Zero Token Leakage
Git tokens injected via header flags in-memory only. PATs never hit disk, stdout, or CLI arguments.
Manage Your Local Stack Without Leaving the Terminal
Yoink provides built-in lifecycle management, log streaming, environment overrides, and resource metrics.
yoink up & down
Starts services and waits for healthchecks to turn green. Gracefully tears down containers while preserving persistent volumes.
yoink logs & stats
Unified live multi-container log streaming with timestamp synchronization and real-time CPU/memory metrics per container.
yoink env & explain
Override environment variables without editing compose files, and run explain for an instant architectural audit.
Answers to Common Questions
Everything you need to know about safety, LLM keys, and local Docker management.
--no-agent flag (yoink init <url> --no-agent), or configure a local, privacy-first Ollama instance during yoink setup. An API key (OpenAI, Anthropic, Gemini, Groq) is only needed if you want cloud-assisted build healing.yoink setup, you can supply a GitHub Personal Access Token (PAT). Yoink injects this token in-memory using git -c http.extraheader="Authorization: Basic ...". The token is never printed to standard output, never passed as a CLI argument, and is immediately stripped from git config once cloning finishes.yoink-outputs/ (such as Dockerfile.* and docker-compose.yml). Any attempt by the LLM to patch source files, traversals (../), or non-allowlisted filenames is strictly blocked.--heal-tries N). If a stack cannot be fixed within budget, Yoink cleanly tears down broken containers, prints an honest, human-readable summary of the root cause, and exits with code 3 (BLOCKED).~/.yoink/config.json (permissions chmod 0600). Project metadata, port allocations, and detection hashes are saved in ~/.yoink/state/<project>/yoink.lock. You can remove a project anytime with yoink incinerate <project>.Ready to containerize any repository in seconds?
Copy the one-liner installer or dive into the complete documentation.