launching soon · open source

Your team already built it. Stop rebuilding it.

BricoWerx keeps the best parts of your projects as reusable pieces: modules, prompts, agent skills, evals. Engineers find them from the terminal. AI assistants find them over MCP. Nobody regenerates what already exists.

one static binary your git repo is the database works offline
BWX assembled from pieces, like everything in the Vault
In one sentence

A version-controlled library of your organisation's proven building blocks, with the wiring and the reasoning attached, readable by humans and by AI.

~300tokens to answer "do we have JWT auth?"
0lines generated when a piece already exists
It isA CLI, a git folder we call the Vault, and an MCP server. That is the whole product.
It is notA code generator, a wiki, a package registry, or another AI chat window.
bricolage/bri.ko.laj/ · noun

Making something new from whatever is already at hand, and letting the joins show. We apply it to engineering knowledge in the AI era: the modules, prompts and evals your team already proved are the raw material. The visible join is where a piece was reused, and we think that join is the most valuable line in the codebase.

brico extract find what is worth keeping brico capture save it as a versioned piece brico search find it again in seconds brico add drop it into a new project, wiring included brico mcp let your AI assistant use the same library brico eval regression-test your prompts brico graph ask what depends on what
Launching soon

The Vault opens soon. Be in the first cohort.

We are finishing Phase A: summaries at capture, meaning-based search and the MCP server. Leave your email and you get the first binary before anyone else, a founding badge in your Vault, and a say in what ships next.

No spam. One email when we open, one when the binary is yours.
  • First binary. Phase A build, before the public release.
  • Founding badge. A marker in your Vault manifest that says you were here first.
  • A vote. The first cohort picks which piece kind ships next: prompt or skill.
TEASER · 00:45What a Vault looks like when three teams share one.
00 The principle

Three rules of digital bricolage.

i.

Use what is at hand

Before anyone writes or generates, ask the Vault. The best material is the work your team has already shipped and debugged.

ii.

Let the seams show

A reused piece keeps its name, its version and its history. Reuse is not hidden behind a copy-paste. It is recorded, queryable, and worth celebrating.

seam
iii.

Every piece improves the whole

Each capture adds a card, a surface, a summary and a set of relations. The library gets smarter for humans and for AI with every commit.

01 The problem

Every team rebuilds the same things. Then their AI rebuilds them again.

The auth module your team perfected two projects ago still exists. It is just buried inside that project, tangled with its dependencies, and invisible to search. So the next project writes a new one. Then an AI assistant, asked the same question, writes a third one. The knowledge was never lost. It was never findable.

regenerated ×4 Today, without BWX

"We need JWT auth in the new service."

  1. Someone remembers "we did this before" but not where.
  2. The assistant scans the whole codebase for context.
  3. It writes a fresh implementation that has to be reviewed line by line.
  4. You now maintain a fourth, slightly different auth module.
cost: tens of thousands of tokens, a review cycle, new bugs
reused With BWX

"Do we have JWT auth?"

  1. The assistant asks the Vault, not the codebase.
  2. The Vault answers with a short card: auth@0.2.0, nest, jwt, proven in 3 projects.
  3. brico add auth copies the piece and prints the two wiring steps.
  4. Nothing new was written. Nothing new needs review.
cost: about 300 tokens and one command
?

Knowledge nobody can find

Prompts live in a wiki page, eval scripts rot in scratch folders, agent configs get copy-pasted between repos and slowly drift apart. Each one was hard-won. None of them are searchable as a thing in their own right.

×3

AI that regenerates instead of reusing

Assistants are great at writing new code and bad at knowing what you already have. Every regeneration costs tokens, review time, and another variant to maintain.

Why this matters now

Teams now track token spend like cloud spend, and MCP gave assistants a standard way to ask external systems for knowledge. A small, curated library of your best work is exactly what that standard was made to serve.

The knowledge was never lost. It was never findable.

the one-line version of the problem
02 How it works

Capture once. Find it anywhere. Add it in one command.

Three verbs, one binary. Everything lives in a git folder on your machine called the Vault. No server to run, no account to create.

1

Capture

Point brico at a project. It suggests which modules are worth keeping. Pick one, and it is saved to the Vault as an immutable, versioned piece with a manifest, its env vars, and its wiring steps.

human
$ brico extract
  auth      92%  jwt, passport, bcrypt
  mailer    81%  smtp, templates
$ brico capture auth
  saved auth@0.1.0 to the Vault
2

Find

Search by name, tag, or plain-language meaning. Engineers use the CLI or the terminal UI. AI assistants use the exact same library over MCP, so they answer "do we have X?" from your Vault instead of guessing.

humanai assistant
$ brico search "token auth for nest"
  auth@0.2.0   jwt, passport   3 projects
$ brico mcp   serving 4 tools to your assistant
3

Add

One command copies the piece into a new project, merges env vars into your example file, and prints the manual steps that remain. You reuse verified code instead of reviewing generated code.

humanai assistant
$ brico add auth
  copied 6 files, wired .env.example
  next: add AuthModule to AppModule imports
03 What is a piece?

A piece is a module plus everything you would normally have to ask a colleague about.

A package gives you code. A piece gives you code and the wiring, the env vars, the design decisions, and a few cheap summaries that let people and AI understand it without reading every file.

vault/pieces/auth/0.2.0/
  src/the files themselves
    auth.service.ts
    auth.module.ts
    jwt.strategy.ts
  manifest.jsonname, kind, deps, env, wiring, relations
  card.json~50 tokens: what it is
  surface.json~300 tokens: how to call it
  summary.md~500 tokens: why it works this way
  embeddings.f32for meaning-based search
manifest.jsonThe contract. Dependencies, env vars, framework wiring steps, and how this piece relates to others: depends on, replaces, similar to.
card.jsonThe one-liner. Name, description, tags, kind, latest version. Enough to answer "do we have something for X?" for the price of a sentence.
surface.jsonThe signatures. Exported types and functions with bodies removed, extracted from the AST. Enough to write code that calls the piece correctly.
summary.mdThe reasoning. Design decisions and trade-offs, generated at capture time. The part you would otherwise interrupt a senior engineer for.
src/The source. Rarely needed. Most questions are answered by the three files above, at a fraction of the cost of reading code.
03b Why the summaries matter

Cheap questions get cheap answers.

Every piece can be read at four levels of detail. Whoever is asking, human or AI, climbs only as high as the task needs. Click a level to see exactly what gets returned.

Card~50 tokens
"Do we have something for X?"
Surface~200 to 400
"How do I call it?"
Summary~500
"Why was it built this way?"
Full sourcecode cost
"I need to change it."
what gets returned
// card.json, the whole thing
{
  "name": "auth",
  "kind": "code",
  "description": "JWT auth with Passport and bcrypt",
  "tags": ["security", "jwt"],
  "framework": "nest",
  "latest": "0.2.0"
}

Enough to answer existence questions across an entire Vault for the price of a sentence.

cost~50
// surface.json, signatures only, no bodies
export class AuthService {
  signIn(dto: SignInDto): Promise<Session>
  verify(token: string): Promise<Claims>
}
env   JWT_SECRET, JWT_EXPIRES_IN
wire  add AuthModule to AppModule imports

Exported types, function signatures, env vars and wiring steps. Everything needed to call the piece correctly, and nothing else.

cost~300
# summary.md, generated at capture
## Why it works this way
Refresh tokens are rotated on every use and stored
hashed, so a leaked token is single-use.

## Trade-offs
A stateful refresh store (Redis) was accepted to gain
revocation. A pure-JWT design cannot revoke.

Design decisions and trade-offs. The reasoning that usually lives only in one person's head.

cost~500
// the files themselves
auth.service.ts        auth.module.ts
auth.controller.ts     jwt.strategy.ts
refresh-token.store.ts manifest.json

The top level is rarely needed. And the biggest saving is not on this ladder at all: not generating the code in the first place. brico add installs a verified piece for zero generation tokens and zero review of novel code.

costfull
the same question, two ways
0

tokens for the Vault to answer "do we have JWT auth for NestJS?"

repo-indexing assistant
0

tokens to answer the same question by scanning source files

a mature 10,000-piece vault
~40 MB

of search vectors. Smaller than one node_modules folder.

04 For AI assistants

Your assistant gets a librarian instead of the whole library.

brico mcp exposes the Vault over the Model Context Protocol. Claude, Cursor, IDE agents, internal copilots: any MCP-capable assistant can search your pieces, read them at the right level of detail, and recommend reuse before it writes anything new. Same engine, same index, no separate service.

assistant ↔ brico mcp
dev"Add payments to the new service."
toolplan_reuse("add payments to a NestJS service")
vault2 candidates · payments@0.1.2 (stripe, proven in 3 projects)
· billing-webhooks@0.3.0  94 tokens
toolget_piece("payments", level: "surface")
vaultsignatures · env: STRIPE_SECRET, STRIPE_WEBHOOK_SECRET · wiring: 2 steps  210 tokens
agentRecommends brico add payments, wiring steps included.
Zero generated code. Zero novel code to review.
search_pieces(query, kind?)Meaning and keyword search over the Vault. Returns cards.
get_piece(name, level)Returns one level: card, surface, summary, or source.
plan_reuse(task)Given a task, returns candidate pieces and why they fit.
get_relations(name, kind?)Dependencies, dependents, replacements, similar pieces.

Four tools. All of them return summaries, never raw repository scans.

05 Not only code

Prompts, skills and evals deserve versions too.

The things worth keeping have grown beyond modules. A prompt with its test cases, an agent skill, a benchmark suite: each is just a piece with a different kind. Same Vault, same commands, same MCP tools.

codeshipping

Modules with their wiring

Files, dependencies, env vars and framework wiring steps. Captured, versioned, ready to add.

Rule: versions are immutable. Publish refuses to overwrite.
promptnext

Prompts with test cases

Template, input variables, target models, and the evaluation cases that prove it still works.

Rule: a prompt with versioned evals is to prompts what a module with tests is to code.
skillnext

Agent skills

Instructions plus scripts, in the emerging industry format. Served over MCP, the Vault becomes a skill registry for free.

Rule: structurally identical to a code piece. Nothing new to learn.
evallater

Benchmark suites

Cases, scoring criteria, harness configuration. Standalone and reusable across prompts.

Rule: a harness, deliberately not a platform.
datasetlater

Pointers, never blobs

URI, content hash, schema, license. Identity and provenance without the payload.

Rule: the Vault stays small and clones stay fast.
pipelinelater

Compositions of other pieces

RAG and agent setups that reference other pieces by name and version.

Rule: "which pipelines break if we change the chunking prompt?" becomes a query.
06 Inside

Boring on purpose: files in git, one SQLite index, one binary.

Files in git are the source of truth.Everything that looks like a database is a projection you can delete and rebuild with brico reindex.

1truth

The Vault, a git directory

Each version folder holds the piece's files, its manifest, and its derived summaries. Commit it, branch it, review it, share it like any other repo.

offline · auditable
2index

One embedded SQLite file

A single database at ~/.brico/index.db, compiled into the binary. Meaning search (sqlite-vec), keyword search (FTS5), and relationship queries (plain SQL) from one file.

zero runtime deps
3scale

A hosted tier, only when teams need it

Postgres with pgvector for shared team Vaults. Still a projection: if it dies, it is rebuilt from the repositories.

later

Generating embeddings is the only step that touches a network, so it is fenced: always skippable, and brico reindex --embed backfills later. Offline-first is a guarantee, not a footnote.

07 Roadmap

Four phases. Each one waits for the last one to ship.

Phase A · now

Knowledge layer

weeks
  • Summaries generated at capture
  • Meaning-based search
  • brico mcp with four tools
  • SQLite index
Phase B

AI piece kinds

1 to 2 months
  • Prompt and skill kinds
  • brico eval harness
  • Polished example pieces
Phase C

Accounting and graph

1 to 2 months
  • brico stats token accounting
  • brico graph relationships
  • Eval, dataset, pipeline kinds
Phase D

Team scale

when real teams pull
  • Shared team Vaults, git-based first
  • Hosted Postgres tier if needed
  • Registry groundwork
08 Plain answers

The questions people ask after the first read.

So what is BricoWerx, in one breath?
A command-line tool that saves the good parts of your projects as versioned pieces in a git folder, lets you and your AI assistants search that folder, and drops any piece into a new project with one command. Reuse what you already built instead of rebuilding or regenerating it.
Is it a code generator?
No. BWX never writes code. It finds and copies code your team already wrote and verified, along with the wiring steps to make it work. If anything, it is the opposite of a generator: it removes the need to generate.
Is it a wiki or a docs tool?
No. Wikis die because writing them costs more than reading them. In BWX, brico capture is the only thing a contributor does. Summaries, signatures and search vectors are derived automatically. The knowledge is attached to the code, not written about it somewhere else.
Is it a package registry like npm?
Closer, but no. A registry distributes libraries. A piece carries what a package cannot: your framework wiring, env vars, design decisions, evals, and relationships to your other pieces. It is for the internal modules you would never publish, and for prompts and skills that npm has no concept of.
What does "AI assistants over MCP" actually mean for me?
You run brico mcp and point Claude, Cursor or your IDE agent at it. From then on, when you ask the assistant to build something, it first asks your Vault whether a piece already exists, reads a 50-token card instead of scanning your repos, and suggests brico add when there is a match.
Do I need a server, an account, or a database?
No. One static binary, a git folder, and an SQLite file that lives in your home directory and can be rebuilt any time. It works offline. A hosted tier for shared team Vaults comes later, and only if teams ask for it.
Which stacks does it support today?
brico extract currently understands NestJS and Next.js projects and ranks reusable modules by confidence. Capture, add, search, publish and the terminal UI are shipping. MCP, prompt pieces and evals are the next two phases.
Where does the name come from?
Brico is from the French bricolage: building with what you already have in your hands. Werx is the workshop where it happens. BWX is the short form you will see in the CLI, the docs and the logo.
09 Blog

Field notes from the workshop.

Short, practical writing about reuse, token economics, and building an engineering library your AI can actually use.

10 Newsletter

The Vault Letter

One email a month. What shipped in BWX, one field note on reuse or token economics, and one piece pattern worth stealing. No noise between issues.

  • Release notes you can read in two minutes
  • Real token numbers from real Vaults
  • Unsubscribe in one click, always

Monthly. No tracking pixels. We store your email with the provider named in the privacy note and nowhere else.

11 Get started

From zero to your first piece in five minutes.

# build the engine, one static binary cd engine && go build -o ../brico ./cmd/brico && cd .. # capture your first piece ./brico extract ./brico capture auth -y -d "JWT auth with Passport and bcrypt" -t security,jwt # browse, then add it to a new project ./brico list ./brico --cwd ../new-service add auth -y ./brico doctor
CommandStatusWhat it does
brico extractworkingScans a NestJS or Next.js project and ranks reusable candidates by confidence
brico captureworkingSnapshots a module into an immutable, semver'd piece with a manifest
brico addworkingResolves a version, copies files, merges env vars, prints wiring steps
brico list / searchworkingFinds any piece by name, tag, or description
brico doctorworkingValidates engine, adapters, Vault, and project
brico uiworkingFull-screen terminal cockpit over the Vault
brico publishworkingPushes the Vault or a single piece to a GitHub repo
brico mcpphase AExposes the Vault as a Model Context Protocol server
brico evalphase BRuns versioned evaluation cases for prompt pieces
brico statsphase CLocal, opt-in token-savings accounting
brico graphphase CQueries relationships: depends_on, replaces, similar_to
# push the whole Vault to your main GitHub repo ./brico publish # publish a single piece, merged with what the target already holds ./brico publish auth # publish to a different repo entirely ./brico publish -l ./brico publish --repo git@github.com:you/team-vault.git

The main repo is asked for once and saved to your global config. Override with --repo, -l, or the BRICO_PUBLISH_REPO environment variable. Pushes use your ambient git credentials.

# expose the Vault to any MCP-capable assistant ./brico mcp # tools served: search_pieces(query, kind?) cards get_piece(name, level) card | surface | summary | source plan_reuse(task) candidates with fit rationale get_relations(name, kind?) graph neighbourhood

A thin protocol layer over the same engine and index the CLI already uses.

Your next module is already sitting in your last project.

Capture it once. Let your team and your AI assistants reuse it forever. One binary, your own git repo, nothing to sign up for.