Projects
Bundle multiple artifacts into a pullable project with agex.toml.
A project is a curated bundle of artifacts that work together for a specific stack or workflow. Where an artifact is a single file, a project is the complete agentic setup for a codebase.
What goes in a project
A project can include artifacts from any of the four categories:
- Rules — the
CLAUDE.md,.cursorrules, orAGENTS.mdthat gives the agent codebase context - Skills — on-demand workflows for common tasks (deployment, migrations, PR review)
- MCP servers — tools the agent can call (database access, web search, etc.)
- Hooks — lifecycle scripts (linting before tool calls, logging after)
- Subagents — specialized agents for specific domains (frontend, testing, docs)
Defining a project with agex.toml
Run agex init in your project root to generate an agex.toml. You can then add remote artifacts or reference local files.
[project]
name = "my-nextjs-app"
description = "Next.js 15 + TypeScript + Tailwind agentic setup"
tools = ["claude-code", "cursor"]
stack = ["nextjs", "typescript", "tailwind", "postgres"]
author = "rkrebs"
repository = "https://github.com/rkrebs/my-nextjs-app"
license = "MIT"
[rules]
# Remote artifact from the hub
main = "@rkrebs/nextjs-claude"
# Local file reference — pushed automatically with agex push .
local-rules = "local:CLAUDE.md"
[skills]
deploy = "@rkrebs/vercel-deploy-recipe"
[mcp]
database = "@rkrebs/postgres-mcp"
[hooks]
lint = "@rkrebs/eslint-pre-tool-hook"
[subagents]
frontend = "@rkrebs/frontend-agent"Publishing a project
agex push .This command:
- Pushes any
local:file references as new artifacts (or updates them if they already exist) - Creates or updates the project on the hub with all artifact linkages
- Prints a summary and the hub URL
Pulling a project
Anyone can pull your project into their own codebase:
agex add @rkrebs/my-nextjs-app # adds to agex.toml
agex sync # materializes all artifactsOr in one step:
agex add @rkrebs/my-nextjs-app && agex syncLocal references
The local: prefix lets you reference a file in your repo that isn't yet on the hub. When you run agex push ., local references are automatically uploaded as artifacts first, then linked into the project.
[rules]
main = "local:CLAUDE.md"This is the recommended workflow when iterating on a config — work locally, push when ready.