carbon
Carbon is an open source ERP, MES and QMS for manufacturing. Perfect for complex assembly, contract manufacturing, high volume, and configure to order manufacturing.
Install / Use
claude mcp add crbnos -- npx -y github:crbnos/carbonIf the server publishes to npm under a different name, use that package instead — check the repo README.
MCP Server
Model Context Protocol server
Quality Score
Category
Data & AnalyticsSupported Platforms
Skill content
View source on GitHubDoes the world need another ERP?
We built Carbon after years of building end-to-end manufacturing systems with off-the-shelf solutions. We realized that:
- Modern, API-first tooling didn't exist
- Vendor lock-in bordered on extortion
- There is no "perfect ERP" because each company is unique
We built Carbon to solve these problems ☝️
Architecture
Carbon is designed to make it easy for you to extend the platform by building your own apps through our API. We provide some examples to get you started in the examples folder.
Features:
- [x] ERP
- [x] MES
- [x] QMS
- [x] Custom Fields
- [x] Nested BoM
- [x] Traceability
- [x] MRP
- [x] Configurator
- [x] MCP Client/Server
- [x] API
- [x] Webhooks
- [x] Accounting
- [ ] Capacity Planning
- [ ] Simulation
- [ ] Full Roadmap
Technical highlights:
- [x] Unified auth and permissions across apps
- [x] Full-stack type safety (Database → UI)
- [x] Realtime database subscriptions
- [x] Attribute-based access control (ABAC)
- [x] Role-based access control (Customer, Supplier, Employee)
- [x] Row-level security (RLS)
- [x] Composable user groups
- [x] Dependency graph for operations
- [x] Third-party integrations
Techstack
- React Router – framework
- Typescript – language
- Tailwind – styling
- Radix UI - behavior
- Supabase - database
- Supabase – auth
- Redis - cache
- Inngest - jobs
- Resend – email
- Lingui - i18n
- Vercel – hosting
- Stripe - billing
- Rust – geometry service (FCL collision + OpenCASCADE CAD)
Codebase
The monorepo follows the Turborepo convention of grouping packages into one of two folders.
/appsfor applications/packagesfor shared code
/apps
| Package Name | Description | How to run |
| ------------ | --------------- | --------------------------------------------------- |
| erp | ERP Application | pnpm dev (boots stack + ERP via crbn up picker) |
| mes | MES | pnpm dev (select MES in picker, or both) |
| academy | Academy | pnpm dev:academy |
| starter | Starter | pnpm dev:starter |
| assembler | Geometry service (Rust): STEP → GLB + assembly motion planning | spawned by crbn up (needs a release binary — see Installation) |
pnpm dev runs the per-worktree dev CLI (crbn up). ERP and MES are first-class — the CLI boots the docker stack, applies migrations, regenerates types/swagger, and spawns the selected apps behind portless. The assembler geometry service is spawned too when its release binary is present. Academy and starter are standalone Turborepo entries.
/packages
| Package Name | Description |
| ------------------- | -------------------------------------------------------------------------- |
| @carbon/database | Database schema, migrations and types |
| @carbon/documents | Transactional PDFs and email templates |
| @carbon/ee | Integration definitions and configurations |
| @carbon/config | Shared configuration (vitest, tsconfig, tailwind) across apps and packages |
| @carbon/jobs | Background jobs and workers |
| @carbon/logger | Shared logger used across apps |
| @carbon/react | Shared web-based UI components |
| @carbon/kv | Redis cache client |
| @carbon/lib | Third-party client libraries (slack, resend) |
| @carbon/stripe | Stripe integration |
| @carbon/utils | Shared utility functions used across apps and packages |
Development
Setup
-
Clone the repo into a public GitHub repository (or fork https://github.com/crbnos/carbon/fork). If want to make the repo private, you should acquire a commercial license to comply with the AGPL license.
git clone https://github.com/crbnos/carbon.git -
Go to the project folder
cd carbon
Make sure that you have Docker installed on your system since this monorepo uses the Docker for local development.
In addition you must configure the following external services:
| Service | Purpose | URL | | ------- | -------------------------- | -------------------------------------------------------------- | | Posthog | Product analytics platform | https://us.posthog.com/signup | | Stripe | Payments service | https://dashboard.stripe.com/login | | Resend | Email service | https://resend.com |
Posthog has a free tier which should be plenty to support local development. If you're self hosting and you don't want to use Posthog, it's pretty easy to remove the analytics.
Installation
First download and initialize the repository dependencies.
This repo uses pnpm as its package manager. Enable Corepack so the correct pnpm version (pinned via packageManager in package.json) is used automatically:
$ corepack enable # one-time: activates pnpm shim from packageManager field
Then install dependencies:
$ nvm use # use node v22
$ pnpm install # install dependencies
Optional: the assembler geometry service
assembler is a Rust service (STEP → GLB + assembly motion planning) over C++ FCL and OpenCASCADE. ERP/MES run fine without it — set it up only if you need the 3D /convert and /plan endpoints.
-
Toolchain + native build deps (macOS):
$ curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh # Rust, if not already installed $ brew install fcl cmake ninja draco # collision libs (+ libccd/eigen/octomap), build tools, Draco mesh compressionOn Linux, install the equivalents from your package manager:
libfcl-dev libccd-dev libeigen3-dev liboctomap-dev libdraco-dev cmake ninja-buildplus a C/C++ toolchain../setup.shalready installs Draco on macOS. If yours lives outside the Homebrew keg (/opt/homebrew/opt/dracoon arm64), pointdraco-bridge's build at it withDRACO_PREFIX=/path/to/draco cargo build. -
Build OCCT once — a patched static OpenCASCADE, cached in
~/.cache/carbon-occt. Slow (~15–30 min) but one-time per machine; re-running is a no-op once cached:$ ./apps/assembler/scripts/build-occt.sh -
Build the service — seconds once OCCT is cached (
build.rsfinds it automatically):$ cargo build --release -p assembler
crbn up spawns the binary when it's present. Verify it's up with curl -sf "$ASSEMBLER_SERVICE_URL/health" (the URL is in your worktree's .env.local) or by watching the asm | lines in the crbn up output. Without the binary the rest of the stack still runs — only /convert and /plan are unavailable.
The dev stack (Postgres, GoTrue, Kong, Storage, Inngest, Inbucket, Studio, Realtime) is booted later by crbn up — see Local dev CLI below. There is no separate "start the database" step.
Local dev CLI (crbn)
crbn is a small CLI at packages/dev/bin/crbn that wraps two things:
- Git worktrees — every feature branch can live in its own checkout dir, so you can switch branches without stashing.
- Per-worktree docker compose stack — each worktree gets its own Postgres / Supabase services on dynamic ports, isolated under
carbon-<slug>compose project. Routing is handled by portless (a local HTTPS reverse proxy that serves*.devhostnames on:443with locally-trusted certs — installed automatically on firstcrbn up).
Windows users: the dev CLI (
crbn,setup.sh) is POSIX-only and expects WSL or Git Bash. Native cmd.exe / PowerShell shells are not supported. From a WSL/Git Bash prompt, the standard flow (./setup.sh,pnpm dev,crbn checkout …) works the same as on macOS/Linux.
Run setup.sh once to put crbn on your $PATH and install the crbn shell function (so crbn checkout can change cwd):
$ ./setup.sh # writes a sentinel block to ~/.zshrc or ~/.bashrc
$ source ~/.zshrc # or open a new shell
$ crbn # shows commands
Common flows:
$ crbn checkout sid/cool-thing # cd into worktree (creates if missing,
# auto-fetches from origin if needed)
$ crbn checkout -b feat/new-thing # new branch off origin/main + worktree
$ crbn checkout sid/cool-thing --up # …and boot the stack inside it
$ crbn checkout 760 # fetch GitHub PR #760 into a `pr-760`
# branch + worktree (fork PRs work too)
$ crbn copy # re-sync .env from main checkout
$ crbn up | down | reset | status # per-worktree compose stack
$ crbn new | list | remove # interactive worktree management
crbn up flags:
--no-migrate— skipsupabase migration up(use when schema is already current and you just want to re-boot containers fast)--no-regen— skip regeneratingpackages/database/src/types.ts+swagger-docs-schema.ts(auto-skipped when--no-migrateis set, since no schema change implies no type drift)
Files synced by crbn copy are listed under package.json#crbn.copy (defaults to [".env"]). To uninstall the rc block: ./setup.sh --uninstall.
Create an .env file and copy the contents of .env.example file into it
Truncated for display — read the full file on GitHub.
Related Skills
claude-mem
94.4kPersistent Context Across Sessions for Every Agent – Captures everything your agent does during sessions, compresses it with AI, and injects relevant context back into future sessions. Works with Claude Code, OpenClaw, Codex, Gemini, Hermes, Copilot, OpenCode + More
Agent-Reach
84.2kGive your AI agent eyes to see the entire internet. Read & search Twitter, Reddit, YouTube, GitHub, Bilibili, XiaoHongShu — one CLI, zero API fees.
headroom
73.4kCompress tool outputs, logs, files, and RAG chunks before they reach the LLM. 20% fewer tokens for coding agents, 60-95% fewer tokens for JSON, same answers. Library, proxy, MCP server.
ruflo
73.0k🌊 The original agent harness. Deploy intelligent multi-player swarms, coordinate autonomous workflows, and build conversational AI systems. Features adaptive memory, self-learning intelligence, federation, vector RAG integration, and native Claude Code / Codex / Hermes and many more Integrated
