Drop a binary, source archive, or paste a Git URL. The system reads the payload and routes automatically — direct to the registry for compiled binaries, through the Remote Forge for source code.
src/ folder inside is fine; what matters is that the build file sits at the top level of the ZIP:
| ✅ | myproject.zip → CMakeLists.txt, src/, include/ at top |
| ✅ | myproject.zip → Cargo.toml, src/main.rs at top |
| ❌ | src.zip — only the src/ folder zipped alone (Forge can't find the build file) |
my-cool-tool)1.0.0)linux-x64 automatically
git submodule update --init --recursive before zipping so all dependencies are included.
.zip only if your app needs extra files (DLLs, assets, etc.) alongside the binary:
| win-x64 | Drop myapp.exe directly, or a .zip with the exe + any required DLLs |
| linux-x64 | Drop the Linux binary file directly (no extension needed), or a .zip with it inside |
| osx-x64 | Drop the Mac binary directly, or a .zip containing it |
win-x64 / linux-x64 / osx-x64)mycoolapp, the file must be mycoolapp.exe (Windows) or mycoolapp (Linux/Mac)1.0.0
snprt install mycoolapp. No approval queue.
dotnet publish -r win-x64 --self-contained, PyInstaller --onefile, or nuitka --onefile to bundle everything automatically.
--self-contained true (dotnet) or PyInstaller --onefile.mygame but the exe inside the zip is MyGame.exe. snprt looks for an exact lowercase match. Rename the file to mygame.exe before zipping..exe but selected linux-x64. The app won't run on Linux machines. Re-upload with the correct platform — bump the version to 1.0.1 first.CMakeLists.txt, Cargo.toml, main.py, etc. must be at the top level, not inside a folder. Re-zip from the repo root directory.1.0.0 → 1.0.1), upload the fixed file, hit Publish. snprt serves the new version immediately — no queue, no approval needed.Snprt Studio lets artists, game developers, and AI researchers share their work without using a terminal.
snprt push v1.0.0 auto-compiles via your Git CI and registers for all platformsYou never run dotnet publish yourself. The Ghost Forge compiles the binary in a clean-room environment and registers it directly with the registry.
iwr -useb https://snprt.pages.dev/install.ps1 | iexsnprt loginsnprt.yml recipeid: namit/pong name: "Sovereign Pong" version: 1.0.5 build: template: dotnet-aot # Native AOT — single binary, zero runtime deps entry: Pong.csproj executable: pong # Forge names the output binary this
snprt push v1.0.5CLI reads snprt.yml, injects the Ghost Forge workflow, creates a version tag, and pushes.
GitHub Actions / GitLab CI / Forgejo picks up the tag and spins a clean runner.
dotnet publish -r <rid> -c Release /p:PublishAot=true — native binary, zero runtime.
Runner computes the checksum and POSTs to the snprt registry with your API key.
Registry writes latest.json, FileSystemWatcher fires, feed card shows new version instantly.
| Feature | Manual Upload (Studio) | Ghost Forge (CLI) |
|---|---|---|
| Effort | Build, zip, upload yourself | One command: snprt push |
| Compiling | You do it on your machine | Ghost Forge does it in CI |
| Multi-OS | Need a Mac to build for Mac | Forge builds all RIDs at once |
snprt install yourname/yourapp