Skip to main content

Using Catalogs

Catalogs turn a pile of archetype URLs into an organized, browsable menu. Archetect ships configured with the default Archetect Catalog, and you can add your own.

Browsing interactively​

Run Archetect with no arguments to open your configured catalog as a menu:

archetect

Arrow keys navigate, Enter selects. Groups (📂) drill into submenus; archetypes (📦) start rendering.

Listing the tree​

archetect ls
📂 archetect — Archetect Catalog
📂 rust — Rust Ecosystem
📂 cli — Command-line Applications
📦 clap-cli — Rust CLI application (clap derive, xtask workflow)
📦 xtask — xtask crate

Three icons appear in listings:

IconKindMeaning
📂CatalogA navigation node — drill deeper
📦ArchetypeRenderable
🧩ComponentA building block used by other archetypes (hidden unless -a)

ls resolves the full tree, fetching any catalogs it hasn't seen yet (add -o before the subcommand — archetect -o ls — to stay on cache only). Pass a path to focus on a subtree (archetect ls archetect/rust), and -a to include hidden components.

Searching​

archetect search rust cli

Search is full-text across entry names, descriptions, paths, and metadata (languages, frameworks, tags), with AND semantics — every term must match. Use -a to include hidden entries.

Dispatching by path​

Every path segment ls prints is directly runnable — no menu required:

archetect archetect/rust/cli/clap-cli ~/projects

This is the fastest route once you know your catalog. All the render flags work here too (-a, -A, -s, --dry-run, …).

Project catalogs​

A project can carry its own catalog in a .archetect.yaml file at its root. When you run archetect inside such a project, the project's catalog takes over — teams use this to offer project-specific generators (add a module, add an endpoint, add a migration) right where they're needed.

To reach the global catalog from inside such a project, use global:

archetect global # global catalog menu
archetect global archetect/rust/xtask # dispatch into the global catalog

Adding catalogs to your configuration​

Catalog entries live in your archetect.yaml (~/.config/archetect/archetect.yaml — edit with archetect config edit):

catalog:
archetect:
description: "Archetect Catalog"
source: "https://github.com/archetect/archetect-catalog.git"
acme:
description: "Acme Platform Catalog"
source: "git@github.com:acme/platform-catalog.git"

Each top-level key becomes a root entry in your menu and a path prefix for dispatch (archetect acme/services/grpc). See Configuration Files for the full schema, and Authoring Catalogs to build catalogs of your own.