Skip to content

Overview

If you print often enough, file names stop being a reliable memory system. Three months later you want the bracket that fit perfectly, but the folder has bracket_v3_final_REAL.gcode, bracket_fixed.gcode, and no note saying which one came off the bed straight.

PrintStash is a self-hosted app for keeping that context near the files: source meshes, G-code revisions, slicer metadata, thumbnails, printer copies, and short notes about what worked. It runs on your own hardware. There is no cloud account, subscription, or telemetry.

You slice in OrcaSlicer, PrusaSlicer, Bambu Studio, or Cura. The G-code lands in PrintStash either by manual upload or through the OrcaSlicer post-processing hook. PrintStash reads the comments your slicer wrote into the file, pulls out fields like layer height, infill, material, estimated time, and filament use, and groups that G-code under a logical model alongside the source mesh.

Later you search by name, filter by collection or tag, and open the model. You see every revision, which one you marked as the good one, what the toolpath looks like layer by layer, and, if you connected a Moonraker printer, whether that file is already on the printer.

  • Ingest: STL, 3MF, OBJ, STEP/STP, and G-code via the web UI, the REST API, or the OrcaSlicer push hook — plus import from a URL or .zip (including Printables/MakerWorld/Thingiverse model pages). Files are deduplicated by content hash, so re-uploading the same mesh doesn’t create clutter.
  • Organize: hierarchical collections, flat tags, full-text search, sortable grid/list views, and drag-and-drop between collections.
  • Mirror folders & NAS: point PrintStash at a server folder or NAS share and it indexes files in place (shared volumes) with two-way write-back, scheduled scans, and optional real-time watching.
  • Inspect: an in-browser mesh viewer (solid / x-ray / wireframe) and a client-side G-code toolpath viewer that scrubs layer by layer.
  • Track revisions: every model with G-code has exactly one recommended revision. Label the others known_good, needs_test, or failed, add notes, and compare two revisions’ settings side by side.
  • Talk to printers: Moonraker/Klipper with live status, send-to-print, remote file sync, and print-history import with measured filament and cost. Bambu LAN status and controls are in beta.
  • Measure: a Statistics dashboard turns completed prints into cost, filament, and print-time trends, and share a single model via an expiring, read-only public link.
  • Stay portable: metadata export to JSON/CSV, full backup/restore, audit logs, and a health endpoint — all on SQLite by default, Postgres and S3/R2 optional.

PrintStash is early open-source software. The current build is useful for a home library and a Moonraker/Klipper workflow, and the backup, upgrade, and migration paths are real. It is not a slicer, firmware replacement, or print-farm scheduler. See Known limitations for the honest list of rough edges and explicit non-goals.

The thing that helps most right now is real-world feedback: which slicer profiles parse cleanly, which printers connect, where the setup wizard trips you up. That belongs in Discussions or an issue.

LayerChoice
BackendPython 3.11+, FastAPI, SQLModel, Alembic
FrontendReact 19, React Router 7, TanStack Query, Vite, Tailwind
DatabaseSQLite by default; Postgres optional
StorageLocal disk by default; S3/R2-compatible optional
PrintersMoonraker/Klipper (stable), Bambu LAN (beta)

New here? Go to Installation. Want the vocabulary first? Core concepts explains how models, artifacts, and revisions relate.