Agent skills are small instruction packs that teach an AI coding agent a workflow: test-driven development, code review, writing a spec, hunting a bug. There are some very good ones out there, and I wanted them in my projects.
The usual way is to install them globally, and I didn’t like that. My machines filled up with tools and skills that some projects needed and others didn’t, and each machine ended up slightly different from the others. What I wanted was a simple way to bundle the best skills into the project itself, so the setup travels with the repo and stays in sync everywhere.
That’s aginit:
npx @antomanc/aginit
What a fresh repo is missing
When an agent opens a repo with no setup, it starts out blind. It guesses at the build, test and package manager commands. It greps and reads half the codebase to find its way around. There’s often no test runner, so “it works” never gets checked. And whatever setup I did add by hand was different in every repo.
What aginit adds
aginit writes an AGENTS.md with the project’s real commands, a few invariants and a short playbook for the first session. Codex, Antigravity and any other agent that reads AGENTS.md pick it up, and aginit adds a one-line CLAUDE.md (@AGENTS.md) so Claude Code loads it too.
For skills, it installs the 27 stable Matt Pocock skills (tdd, code-review, diagnosing-bugs, to-spec, to-tickets, pr and the rest), plus humanizer for prose and ponytail for keeping changes small. They go into .agents/skills/ inside the project and get linked into .claude/skills/ for Claude Code. Nothing lands in a global folder, and a lockfile records the exact version of each one, so every machine and every collaborator gets the same set.
It also sets up Graft, a codebase graph, so agents can run graft ask "where is X handled" and get the relevant code spans before they start grepping. For TypeScript projects it adds Vitest. Web projects also get Playwright, Impeccable for UI design and agent-browser for visual QA, with the browser binaries installed so it works out of the box.
For a new project, it can scaffold with the official Vite or Next.js tools, or create a small TypeScript CLI.
I used it on this blog
This blog is an AstroPaper site I hadn’t touched in months. I ran aginit init on it and it detected bun as the package manager, kept the existing code and scripts, and added an AGENTS.md, 31 skills, Graft and a Vitest harness.
On an existing project, aginit init never replaces application code. It only adds what’s missing. If you already have a different test runner, it adds a separate test:unit script instead of touching yours. If you already have an AGENTS.md, it only appends its own section.
How it’s built
aginit doesn’t vendor anything. Skills, Graft, Vite, Next.js and Playwright come from their upstream tools, and aginit picks good defaults and runs them. When a skill gets better upstream, aginit update pulls it in and rebuilds the graph.
Your choices go into aginit.config.json, so re-running it starts from the same preset, framework and package manager. Re-running the same init is safe. --dry-run lists every planned operation without writing anything. If something fails (Graft missing, a skill install that didn’t work), it exits with an error and keeps what it already did, so you can fix the problem and run aginit init again.
aginit doctor checks Node, Git, Graft, the Skills CLI, agent-browser and the Claude Code wiring, and tells you what’s wrong.
Try it
You need Node.js 22.12+, Git and an internet connection.
npx @antomanc/aginit # interactive wizard
aginit new my-app --preset web --framework vite
aginit init --preset generic --dry-run # see what it would do to an existing repo
It’s still in beta, so flags and defaults may change before 1.0.
aginit prepares the project. For the machine the agents run on, I wrote agbox. They work well together: agbox setup on a fresh box, then npx @antomanc/aginit in each project.