
Bridges Claude to physical 3D printers through OctoPrint, Moonraker, Prusa Link, Bambu Lab, Creality, and direct USB. Exposes discovery, authentication, status polling, G-code upload and slicing, print queue management, webcam snapshots, and job history as MCP tools. The agent can take a natural language request, generate or fetch STL geometry, slice it with PrusaSlicer, route it to the correct printer on your LAN, start the job, and monitor progress without manual intervention. Supports Ethernet and Wi-Fi connections, batch printing, and recovery workflows. Useful when you want conversational control over a print farm or want to close the loop from design idea to physical part in a single Claude session.
The open-source MCP server for 3D printing.
Kiln lets AI agents (Claude Desktop, Claude Code, Codex, or any custom MCP client) drive real 3D printers end to end — Bambu Lab, Creality, Prusa, Elegoo, Voron, Sovol, AnkerMake, Artillery, FlashForge, QIDI, RatRig, and SparkX. It is compatible with OctoPrint, Moonraker/Klipper, PrusaLink, and Direct USB.
In a single conversation, an agent can design a part, slice it, queue it on the right printer, monitor the camera, recover from failures, and ship the result. No human in the middle.
Reading this as an AI agent? kiln3d.com/agents is written for you rather than for the person running you: install, MCP config, the design-to-print loop, and exactly what Kiln will refuse to do and why.
pip install kiln3d
"a coaster with a photo of my dog Ash" — start to finish, from one sentence.
Watch the demo →
Kiln's built in the open. If it made your printing more fun, or just saved you a headache, a ⭐ on the repo helps the next maker find it.
Using Claude Desktop? Install Kiln in one click. Download kiln.mcpb and double-click it — Claude Desktop installs Kiln and wires it in (just Claude Desktop: steps 1 and 2 below are how Codex and every other AI app connect), so those steps aren't yours. Two things still are: OpenSCAD, and Kiln's terms — the command shows them and asks you to type your acceptance, which is why it's yours and not your AI's: uvx --from kiln3d kiln accept-terms. The bundle and that command both run on uv — free, with a one-line install for each platform at that link. If Claude Desktop says the server failed to start, that's uv missing: install it and restart. Updates arrive with the extension, not via kiln self-update.
Everyone else — three steps. Then ask your AI to make something.
1. Install
pip install kiln3d
2. Connect your AI — Kiln sets itself up inside Claude Desktop, Claude Code, and Codex:
kiln signin # create your free account
kiln install-mcp # connects Kiln to your AI apps
Restart your AI app and it can run your printer. (Claude Code and Codex can even run this whole setup for you — the one-prompt version lives at kiln3d.com/install.) Using a different MCP client? kiln install-mcp --print prints the config — or paste it yourself:
{
"mcpServers": {
"kiln": {
"command": "python3",
"args": ["-m", "kiln", "serve"]
}
}
}
No install needed? Swap the command for a zero-install runner — "command": "uvx", "args": ["kiln3d", "serve"] (Python), or "command": "npx", "args": ["kiln3d"] (Node). Same server, nothing to pip install.
Drop this into Claude Desktop, Claude Code, Codex, Cursor, or any MCP-capable agent. Runs on the free tier until you sign in.
3. Ask — paste a sentence like this into your agent. Kiln does the rest:
Make me a coaster with my dog's photo on it
That's the whole happy path. Your AI does the designing, slicing, and printing — you never touch a CLI. OS-specific walkthrough (Windows, WSL 2, Linux) at kiln3d.com/install.
[!TIP]
kiln doctorchecks your whole setup and tells you exactly what to fix.kiln self-updateupgrades in place when a new release lands.
# Discover printers on your network (mDNS + HTTP probe)
kiln discover
# Add your printer (see the printer table under "Supported Printers")
kiln auth --name my-printer --host http://octopi.local --type octoprint --api-key YOUR_KEY
# Other types:
# kiln auth --name prusa --host http://192.168.1.100 --type prusalink --api-key YOUR_KEY
# kiln auth --name klipper --host http://192.168.1.100:7125 --type moonraker
# kiln auth --name bambu --host 192.168.1.100 --type bambu --access-code LAN_CODE --serial SERIAL
kiln status # Printer state + job progress
kiln upload model.gcode # Upload a file
kiln print model.gcode # Start printing
kiln slice model.stl --print-after # Slice an STL and print in one step
kiln print *.gcode --queue # Batch print
kiln wait # Monitor a running print
kiln snapshot --save photo.jpg # Webcam snapshot
kiln history --status completed # Print history
kiln park --plan # Describe the safe park, send nothing; then --step 1, 2, 3
kiln home --plan # Same for the Home button; --plate-clear where Z homes onto the plate
kiln filament wipe --plan # Same for the wipe-pad pass; --plate-clear where its plan presses the plate
# Every command supports --json for agent consumption
kiln status --json
Global option: --printer <name> targets a specific printer per command. The full command reference is in Project Docs.
Claude Code — install the plugin (one-time: install uv first if you don't have it — it's free and takes one line):
claude plugin marketplace add codeofaxel/Kiln
claude plugin install kiln@kiln
Or wire it by hand — add to .claude/settings.json (project) or ~/.claude/settings.json (global):
{
"mcpServers": {
"kiln": { "command": "kiln", "args": ["serve"] }
}
}
Claude Code uses your ~/.kiln/config.yaml for printer credentials (set via kiln setup or kiln auth). No env vars needed if a printer is already configured.
Claude Desktop — add to ~/.config/Claude/claude_desktop_config.json:
{
"mcpServers": {
"kiln": {
"command": "python3",
"args": ["-m", "kiln", "serve"],
"env": {
"KILN_PRINTER_HOST": "http://192.168.1.100",
"KILN_PRINTER_API_KEY": "your_key",
"KILN_PRINTER_TYPE": "prusalink"
}
}
}
}
Set KILN_PRINTER_TYPE to your backend: octoprint, moonraker, bambu, prusalink, elegoo, duet, or usb — or skip env vars entirely if you've run kiln setup.
Any other LLM (OpenRouter) — Kiln works with any model that supports OpenAI-compatible function calling, not just Claude:
export KILN_OPENROUTER_KEY=sk-or-...
kiln agent --model openai/gpt-4o
kiln agent --model meta-llama/llama-3.1-70b-instruct --tier essential
Tool tiers auto-match model capability: essential (15 tools) for smaller models, standard (60 tools) for mid-range, full (135 tools) for stronger models. All 919 tools are available over MCP via kiln serve.
| Printer | --type | What you need |
|---|---|---|
| Prusa MK4/XL/Mini+ | prusalink | IP + API key (Settings › Network › PrusaLink on the LCD) |
| OctoPrint (any printer) | octoprint | OctoPrint URL + API key (User Settings › Application Keys) |
| Klipper/Moonraker | moonraker | Moonraker URL (usually http://<ip>:7125) |
| Creality K1/K2/Hi/Ender V4/V3 KE | creality | IP + printer_model (e.g. creality_k1_max); probes local Moonraker ports |
| Bambu Lab | bambu | IP + serial number + LAN access code, all on the printer's screen; LAN Only Mode and Developer Mode on to start and control prints |
| Elegoo (SDCP) | elegoo | IP only — no auth. Neptune 4 / OrangeStorm Giga use moonraker. |
| Duet / RepRapFirmware | duet | IP only, plus the machine password if one is set (M551 in config.g). |
| Direct USB (Marlin) | usb | USB cable only — no network. Ender 3, Prusa MK3, CR-10, any Marlin/RepRap printer. |
Kiln only needs IP reachability on your LAN. Ethernet-only printers are fully supported.
Optional tools: PrusaSlicer OrcaSlicer, or BambuStudio for slicing STL → G-code (brew install --cask prusaslicer); OpenSCAD for local text-to-3D generation — install the current build (brew install --cask openscad@snapshot); set KILN_GEMINI_API_KEY to enable Gemini-generated geometry.
pipx installs Kiln into its own isolated environment and puts kiln on your PATH. (The pip package is kiln3d; the CLI command is kiln.)
sudo apt install pipx && pipx ensurepath
git clone https://github.com/codeofaxel/Kiln.git && cd Kiln
pipx install ./kiln
sudo apt install prusa-slicer # optional: slicing for printing
sudo snap install openscad --edge # optional: the design engine (current build)
kiln verify
# Update / uninstall
git pull && pipx install --force ./kiln
pipx uninstall kiln3d
WSL 2 networking: WSL 2 uses NAT, so mDNS discovery (kiln discover) won't see printers on your home network. Connect directly by IP instead (same as Ethernet-only setups).
Kiln works the same over Ethernet and Wi-Fi — it talks to printer APIs over LAN IP. Verify the printer endpoint responds, then register by IP:
curl http://<ip>/api/version # OctoPrint
curl http://<ip>:7125/server/info # Moonraker / Creality (local Moonraker)
curl -H "X-Api-Key: YOUR_KEY" http://<ip>/api/v1/status # Prusa Link
# Bambu uses MQTT — ensure port 8883 is reachable: nc -zv <ip> 8883
kiln auth --name my-printer --host http://<ip> --type prusalink --api-key YOUR_KEY
If PrusaSlicer isn't on your PATH: export KILN_SLICER_PATH=/path/to/prusa-slicer.
Kiln pins the printer certificate (TOFU) on first connection in ~/.kiln/bambu_tls_pins.json. Overrides:
export KILN_BAMBU_TLS_MODE=ca # strict CA/hostname (usually fails on stock self-signed printers)
export KILN_BAMBU_TLS_MODE=insecure # legacy, no validation — trusted LANs only
export KILN_BAMBU_TLS_FINGERPRINT=0123abcd... # explicit SHA-256 pin
Webcam capture is model-dependent: A1, A1 Mini, P1P, P1S serve frames over TLS+JPEG (no extra software). The X1 series (X1C, X1E) serves RTSPS, which Kiln relays via ffmpeg — so on an X1, both snapshots and the live stream need ffmpeg (brew install ffmpeg / sudo apt install ffmpeg). can_snapshot is reported True for every Bambu model; on an X1 without ffmpeg, the attempt surfaces a clear model-specific error rather than failing silently.
Paid tiers (kiln3d.com/pricing) add Git-for-3D versioning, product templates, assembly manuals, fleet workflows, SSO + SCIM, ERP webhooks, and long-term audit logs.
| Backend | Status | Printers |
|---|---|---|
| OctoPrint | Stable | Compatible with any OctoPrint-connected printer (Prusa, Ender, custom) |
| Moonraker | Stable | Klipper-based printers (Voron, Ratrig, etc.) |
| Creality | Stable when Moonraker is reachable | SPARKX i7, K1/K1 Max/K1C/K1 SE, K2/K2 Pro/K2 Plus/K2 SE, Creality Hi, Ender-3 V4/V3 KE, Ender-5 Max, CR-10 SE via local Moonraker. Older Marlin Creality printers use serial or octoprint. |
| Bambu | Stable | Bambu Lab X1C, X1E, P1S, P1P, P2S, A1, A1 Mini, A2L, H2S, H2D, H2D Pro, H2C, X2D (via LAN MQTT) |
| Prusa Link | Stable | Prusa MK4, XL, Mini+ (local REST API — type: prusalink) |
| Elegoo | Stable | Centauri Carbon (via LAN WebSocket/SDCP). Neptune 4 / OrangeStorm Giga use Moonraker. |
| Duet / RepRapFirmware | Beta — not yet verified against physical hardware | Duet 2 and Duet 3 controller boards, over the same HTTP interface Duet Web Control uses. Both RepRapFirmware 2 and 3 are supported. Vision Miner 22 IDEX v4 is the first catalogued machine. Type: duet. |
| Direct USB | Stable | Any Marlin-based printer over USB (Ender 3, Prusa MK3, CR-10, etc.). No OctoPrint or Klipper needed — just a USB cable. Type: serial. |
Kiln ships tuned profiles for 70 models across 15 brands — Creality, Bambu Lab, QIDI, Elegoo, Prusa Research, Sovol, Voron, AON3D, Artillery, AnkerMake, FlashForge, INTAMSYS, RatRig, SparkX, Vision Miner. See the full searchable list →
graph TD
A["🤖 AI Agent<br/><sub>Claude · GPT · Custom</sub>"]
A -->|"CLI or MCP"| B["⚙️ Kiln<br/><sub>CLI + MCP Server</sub>"]
B --> C["🖨️ Your Printers"]
B --> F["🏭 Fulfillment"]
B --> D["🛒 Marketplaces"]
B --> V["📐 Designs (versioned)<br/><sub>Pro+</sub>"]
C --> E1["OctoPrint"]
C --> E2["Moonraker"]
C --> E3["Creality"]
C --> E4["Bambu"]
C --> E5["Prusa Link"]
C --> E6["Elegoo"]
F --> F1["Craftcloud"]
D --> I["MyMiniFactory"]
D --> J["Cults3D"]
V --> V1["Branches"]
V --> V2["Signed Releases"]
V --> V3["Cloud Sync"]
style A fill:#1a1a2e,stroke:#e94560,color:#fff
style B fill:#16213e,stroke:#0f3460,color:#fff
style C fill:#0f3460,stroke:#e94560,color:#fff
style F fill:#0f3460,stroke:#27ae60,color:#fff
style D fill:#0f3460,stroke:#533483,color:#fff
style V fill:#0f3460,stroke:#f59e42,color:#fff
style E1 fill:#2d2d44,stroke:#e94560,color:#fff
style E2 fill:#2d2d44,stroke:#e94560,color:#fff
style E3 fill:#2d2d44,stroke:#e94560,color:#fff
style E4 fill:#2d2d44,stroke:#e94560,color:#fff
style E5 fill:#2d2d44,stroke:#e94560,color:#fff
style F1 fill:#2d2d44,stroke:#27ae60,color:#fff
style I fill:#2d2d44,stroke:#533483,color:#fff
style J fill:#2d2d44,stroke:#533483,color:#fff
style V1 fill:#2d2d44,stroke:#f59e42,color:#fff
style V2 fill:#2d2d44,stroke:#f59e42,color:#fff
style V3 fill:#2d2d44,stroke:#f59e42,color:#fff
Agents can also outsource jobs through Craftcloud fulfillment and search models on MyMiniFactory and Cults3D (search only). On Pro and up, the design store itself is versioned — branches, signed releases, and cross-machine cloud sync are first-class outputs of the system, not a side database.
Designs aren't text, but they need version control. Kiln treats meshes, decorations, and mechanical features as first-class versioned artifacts: branch a design, print variants, merge what works, sign releases with cryptographic proof the mesh hasn't changed.
Three things make this different from git:
Here's what visualize_branch_tree("my-coaster") actually emits — the same renderer the workshop, CLI, and your agent see (yellow = signed release, light blue = experiment, light red = branch with failed outcomes):
flowchart TD
subgraph tree_coaster["📐 my-coaster · design"]
v0[v0: initial]
v1[v1: emboss-1mm<br/>83% success]
v2[v2: emboss-2mm<br/>92% success · warp 2%]
v3[v3: emboss-3mm<br/>warp 5%]
v4[v4: merge winner]
rel[🔏 1.0.0]
v0 --> v1
v0 --> v2
v0 --> v3
v2 --> v4
v4 --> rel
end
classDef root fill:#f3f4f6,stroke:#374151,color:#111
classDef released fill:#ffd60a,stroke:#111,stroke-width:3px,color:#111
classDef experiment fill:#e0e7ff,stroke:#6366f1,color:#1e1b4b
classDef failed fill:#fecaca,stroke:#b91c1c,color:#7f1d1d
class v0 root
class v1 experiment
class v2 experiment
class v3 failed
class v4 experiment
class rel released
style tree_coaster fill:#ffffff,stroke:#e5e7eb,stroke-width:1px
| Tier | What you get |
|---|---|
| Free | Linear local design history (save / diff / rollback) |
| Pro | Branch · merge · cherry-pick · Ed25519 signed releases · solo cloud sync |
| Business | Team pull requests · approval gates · orgs / teams / scopes |
| Enterprise | Audit log export · SSO · step-up authentication on releases · access review |
Patent pending across semantic mesh merge, outcome-correlated branching, and signed-release-with-physical-provenance.
The Kiln MCP server (kiln serve) exposes 919 tools to agents, plus prompts and resources for 926 total MCP capabilities. Rather than list them all here, agents browse the live catalog with get_skill_manifest and ToolSearch-style discovery. A representative slice, in the order a print actually happens:
load_filament and unload_filament beside it for a spool changeplan_only describes every motion and sends nothing; step=N sends one motion, says what it left armed, and holds the cool-down until the last step. A wipe that presses or crosses the plate asks for plate_clear on every call: a person's word, never inferred. Where a model's wipe has not yet been run on a real machine, Kiln says so and runs it in steps onlyplan_only describes every motion before anything moves; step=N sends one motion and says what it left armedkiln plate clear, or plate_clear on home and park) or a look through the printer's camera (look_at_plate); nothing marks it clear on its ownBeyond this slice, the catalog covers fleet orchestration, print-failure prediction, design version control, assembly manuals, and per-machine calibration; the deeper tiers are described at kiln3d.com/pricing. The complete tool catalog, grouped by subsystem, lives in Project Docs. If you are the agent, kiln3d.com/agents covers the same ground written in the second person, including the refusals worth knowing before you hit them.
| Resource URI | Description |
|---|---|
kiln://status | System-wide snapshot (printers, queue, events) |
kiln://printers | Fleet listing with idle printers |
kiln://printers/{name} | Detailed status for a specific printer |
kiln://queue | Job queue summary and recent jobs |
kiln://queue/{job_id} | Detail for a specific job |
kiln://events | Recent events (last 50) |
Search → download → print. Kiln searches MyMiniFactory and Cults3D (search only) in one call via search_all_models, downloads where supported, and uploads straight to a printer — a full design-to-print loop with no human in the middle. (Thingiverse is supported but deprecated since its Feb 2026 acquisition by MyMiniFactory; prefer MMF.) Marketplace access uses free API keys (KILN_MMF_API_KEY, KILN_CULTS3D_USERNAME + KILN_CULTS3D_API_KEY).
AI model generation. Set any provider key and it's available instantly — KILN_MESHY_API_KEY, KILN_TRIPO3D_API_KEY, KILN_STABILITY_API_KEY, KILN_GEMINI_API_KEY — or use local OpenSCAD with no key. Generated meshes are auto-validated for printability (manifold, triangle count, bounding box) before printing. kiln generate renders a 3-view preview by default.
Slicing. Wraps PrusaSlicer, OrcaSlicer, and BambuStudio for headless slicing; auto-detects installed slicers on PATH, macOS app bundles, or via KILN_SLICER_PATH. Supports STL, 3MF, STEP, OBJ, AMF with material-aware temps and smart supports.
Fulfillment (no printer required). Print through Craftcloud's network — quote, validate address, confirm, order, track — or run alongside your own printers for overflow and specialty materials. Normal users go through the hosted proxy (credentials stay server-side, spend limits enforced); operators can use direct mode with KILN_FULFILLMENT_PROVIDER=craftcloud + KILN_CRAFTCLOUD_API_KEY.
Decoration & textures. Emboss or deboss QR codes, photos, logos, text, and SVGs onto any model face, or apply procedural textures (tiger stripe, marble, camo, wood grain, honeycomb) with a single tool call.
All local printing is free forever — status, file management, slicing, fleet control, and printing to your own printers cost nothing. Kiln charges a 5% orchestration fee on orders placed through external manufacturing services (first 3 orders each calendar month free, on every tier; $0.25 min / $200 max per order), shown transparently in every quote. Outsourced order volume is not capped on any tier.
| Tier | Price | Headline |
|---|---|---|
| Free | $0 | Unlimited local printing, slicing, marketplace search, safety profiles, one printer, design intelligence, linear design history. |
| Pro | $49/mo | Git-for-3D branching/signed releases, product templates, procedural textures, mid-print modification, print resume, failure recovery, nozzle-wear tracking, solo cloud sync. |
| Business | $199/mo | Commercial use, 3 printers + 3 seats, fleet management, cross-printer learning, QR generation, assembly manuals, team pull requests, approval gates, webhooks. |
| Enterprise | Contact us | Large fleets, SSO/SCIM, RBAC, audit trail, encrypted G-code at rest, white-label manuals, 99.9% SLA, on-prem/VPC. |
Founding offer: half off for life while founding spots last — Pro $24.50/mo or $234/yr, Business $99.50/mo or $954/yr. Students get half off for 12 months. Details and how to claim the student price: kiln3d.com/pricing.
Full comparison at kiln3d.com/pricing. Already subscribed? Run kiln signin to put this machine on your plan. For provider-routed orders, the provider remains merchant of record; Kiln acts as orchestration infrastructure.
Kiln is safety-first infrastructure for controlling physical machines:
This monorepo contains two packages:
| Package | Description | Entry point |
|---|---|---|
| kiln | CLI + MCP server for multi-printer control (OctoPrint, Moonraker, Creality, Bambu, Prusa Link, Elegoo, Direct USB) | kiln or python -m kiln |
| octoprint-cli | Lightweight standalone CLI for OctoPrint-only setups | octoprint-cli |
# Create a virtualenv first (required on modern Ubuntu/Debian/WSL)
python3 -m venv .venv && source .venv/bin/activate
pip install -e "./kiln[dev]"
pip install -e "./octoprint-cli[dev]"
cd kiln && python3 -m pytest tests/ -v
cd ../octoprint-cli && python3 -m pytest tests/ -v
docker compose up self-hosts the Kiln MCP server against your own printer — set KILN_PRINTER_TYPE/KILN_PRINTER_HOST/KILN_PRINTER_API_KEY first. This is a personal self-host quickstart, unrelated to the infrastructure behind the hosted api.kiln3d.com service. Prefer zero setup? kiln3d.com runs the hosted version for you.
Optional API-key auth for MCP tools, disabled by default. Scopes: read, write, admin. Read-only tools never require auth.
export KILN_AUTH_ENABLED=1
export KILN_AUTH_KEY=your_secret_key
export KILN_MCP_AUTH_TOKEN=your_secret_key # clients provide their key here
Register HTTP endpoints for real-time event notifications:
register_webhook(url="https://example.com/hook", events=["job.completed", "print.failed"])
Payloads are signed with HMAC-SHA256 when a secret is provided. Redirects are blocked by default (KILN_WEBHOOK_ALLOW_REDIRECTS=0); when enabled, each hop is SSRF-validated and HTTPS→HTTP downgrade is blocked.
kiln discover # mDNS/Bonjour + HTTP subnet probing
Finds OctoPrint, Moonraker/Creality, Bambu, Elegoo, and Prusa Link printers. If discovery returns nothing, register directly by IP with kiln auth.
Entry-point plugins are default-deny in production (KILN_PLUGIN_POLICY=strict). Allow specific plugins with KILN_ALLOWED_PLUGINS=my_plugin,other_plugin, or set KILN_PLUGIN_POLICY=permissive for temporary migration compatibility.
| Module | Description |
|---|---|
server.py | MCP server with tools, resources, and subsystem wiring |
printers/ | Printer adapter abstraction (OctoPrint, Moonraker, Creality, Bambu, Prusa Link, Elegoo) |
marketplaces/ | Model marketplace adapters (MyMiniFactory, Cults3D, Thingiverse, metadata-only sources) |
slicer.py | Slicer integration (PrusaSlicer, OrcaSlicer, BambuStudio) with auto-detection |
registry.py | Fleet registry for multi-printer management |
queue.py | Priority job queue with status tracking |
scheduler.py | Background job dispatcher with history-based smart routing |
events.py | Pub/sub event bus with history |
persistence.py | SQLite storage for jobs, events, and settings |
webhooks.py | Event-driven webhook delivery with HMAC signing |
auth.py | Optional API key authentication with scope-based access |
discovery.py | Network printer discovery (mDNS + HTTP probe) |
generation/ | Text-to-model generation providers (Meshy, Tripo3D, Stability AI, Gemini Deep Think, OpenSCAD) with auto-discovery, mesh validation, and printability analysis |
consumer.py | Consumer workflow for non-printer users (address validation, material recommendations, timeline/price estimation, onboarding) |
cost_estimator.py | Print cost estimation from G-code analysis |
materials.py | Multi-material and spool tracking |
material_inventory.py | Fleet material inventory and assignment tracking |
bed_leveling.py | Automated bed leveling trigger system |
streaming.py | MJPEG webcam streaming proxy |
cloud_sync.py | Cloud sync for printer configs and job history |
plugin_loader.py | Internal tool-plugin discovery and registration |
plugins/ | Focused MCP tool modules loaded by the plugin loader |
gcode.py | G-code safety validator with per-printer limits |
gcode_interceptor.py | Rule-based G-code interception and safety rewriting |
safety_profiles.py | Bundled safety database (51 named printer models, temps/feedrates/flow) |
slicer_profiles.py | Bundled slicer profiles (auto-generates .ini files per printer) |
printer_intelligence.py | Printer knowledge base (firmware quirks, materials, failure modes) |
pipelines.py | Pre-validated print pipelines (quick_print, calibrate, benchmark) |
assembly.py | Multi-part assembly validation and manual planning support |
design_versions.py | Local design history, version records, diffs, and rollback primitives |
mesh_validation_pipeline.py | Multi-gate printability validation pipeline |
model_visualizer.py | Local model preview rendering |
tool_schema.py | OpenAI function-calling schema converter (MCP → OpenAI format) |
tool_tiers.py | Tool tier definitions (essential/standard/full) for model capability matching |
agent_loop.py | Generic agent loop for any OpenAI-compatible API (OpenRouter, direct, etc.) |
openrouter.py | OpenRouter integration with model catalog and auto-tier detection |
data/ | Bundled JSON databases (safety profiles, slicer profiles, printer intelligence) |
heater_watchdog.py | Auto-cooldown watchdog for idle heaters |
wallets.py | Crypto wallet configuration (Solana/Ethereum for donations and fees) |
pro_tool_manifest.json | Public manifest for kiln-pro tool discovery and REST proxy stubs |
decoration_quota.py | Free-tier decoration quota tracking and tier resolution hooks |
cli/ | Click CLI with 245 commands and JSON output |
kiln-pro (kiln3d.com) extends public Kiln with paid-tier REST serving, billing, licensing, SSO, RBAC, G-code encryption, uptime reporting, team administration, and project-cost workflows. Public Kiln exposes only the interface/proxy surface for those capabilities; the private implementation stays in kiln-pro.
| Document | Description |
|---|---|
| Project Docs | Complete reference (CLI, MCP tools, adapters, config) |
Logo files live in docs/assets/ — all vector SVG, scale to any size.
| File | Use |
|---|---|
kiln-banner-1280x640.svg / kiln-banner-1280x640-light.svg | GitHub / social media banner (dark / light scheme) |
kiln-logo-dark.svg / kiln-logo-light.svg | Primary mark + wordmark (dark / light bg) |
kiln-horizontal-dark.svg / kiln-horizontal-light.svg | Horizontal lockup (dark / light bg) |
kiln-logo-dark-notext.svg | Mark only (dark bg) |
kiln-favicon-256.svg | Favicon / app icon |
kiln-logo-transparent.svg / kiln-logo-transparent-dark.svg | Transparent bg (for dark / light UIs) |
kiln-mark-1024.svg | Square mark tile — profile picture, app tile (1024×1024) |
kiln-x-header-1500x500.svg | Social header (1500×500) |
wallpapers/kiln-wallpaper-iphone-*.svg | iPhone wallpapers |
wallpapers/kiln-wallpaper-macbook-*.svg | MacBook wallpapers |
Every file above is generated from one geometry, so the mark is identical across all of them. Please don't redraw it — scale the vector instead.
Kiln is free, open-source software. If you find it useful, consider sending a tip:
kiln3d.solkiln3d.ethMessaging clarification (February 24, 2026): We clarified wording to remove ambiguity and align with existing intent; no strategy change. Kiln is orchestration and agent infrastructure for fabrication workflows. Kiln does not operate a first-party decentralized manufacturing marketplace/network. Kiln integrates with third-party providers and external provider/network adapters as integrations are available.
Non-goals: operating a first-party decentralized manufacturing marketplace/network; replacing partner supply-side networks; owning provider marketplaces instead of integrating with them; acting as merchant of record for provider-routed manufacturing orders.
Kiln is a project of Hadron Labs Inc.
AGPL-3.0 License — open source with copyleft. Commercial licensing available for companies that need proprietary use.
By contributing, you agree to the Contributor License Agreement.
Also listed on Smithery.
OctoPrint is a registered trademark. Other product and company names are trademarks of their respective owners; Kiln is not affiliated with or endorsed by them.
KILN_PRINTER_HOSTURL of your 3D printer (OctoPrint, Moonraker, Creality, or Prusa Link)
KILN_PRINTER_API_KEYsecretAPI key for your printer's REST API
KILN_PRINTER_TYPEPrinter type: octoprint, moonraker, creality, bambu, prusalink, elegoo, or serial