v0.2.0 · alfa · self-hosted · jedna instance na firmu v0.2.0 · alpha · self-hosted · one instance per company

O tom, co agent smí, rozhoduje server.
Ne notebook.
The server decides what the agent may do.
Not the laptop.

Vlastní platforma pro AI vývojové agenty. Co smí agent zapsat, plyne z fáze projektu a vynucuje to jádro — ne instrukce. Agent běží v jednorázovém kontejneru na tvém serveru a každé rozhodnutí končí v auditovatelné evidenci, kterou nejde přepsat. Self-hosted platform for AI coding agents. What the agent may write comes from the project phase and is enforced by the kernel — not by instructions. The agent runs in a disposable container on your server, and every decision lands in an audit trail that cannot be rewritten.

server: Debian 12 · Ubuntu 22.04 / 24.04server: Debian 12 · Ubuntu 22.04 / 24.04 lidé: macOS · Linux · Windowspeople: macOS · Linux · Windows
agenticdev@server · policy-engine

// řídicí smyčkacontrol loop

Správa opouští notebook a stěhuje se na server. Governance moves off the endpoint and onto the server.

01phase → scope

Hranici drží mount, ne instrukceThe boundary is a mount, not a rule

Server pošle podle fáze seznam cest. Repozitář se připojí read-only a přemountují se jen ty cesty. Zápis jinam selže na EROFS — na jádře, ne na tom, že si to agent ohlídá. The server sends the paths for the current phase. The repository mounts read-only and only those paths are remounted writable. A write anywhere else fails with EROFS — at the kernel, not because the agent behaved.

02spawn → destroy

Pod běží na serveru, ne u lidíThe pod runs on the server

Kontejner startuje na tvém VPS, ne na notebooku. Po skončení se zbourá i s tajemstvími na tmpfs. Na strojích lidí nepřistane Docker ani klíč k repozitáři — jen ikona. The container starts on your VPS, not on a laptop. When it ends it is torn down along with the secrets on tmpfs. Nothing heavy lands on anyone's machine — no Docker, no repository credentials, just an icon.

03append → seal

Evidenci nejde přepsatThe ledger cannot be rewritten

Každá událost se zřetězí hashem s předchozí. Databáze na té tabulce odmítne UPDATE, DELETE i TRUNCATE — není to slib v dokumentaci, je to trigger v Postgresu. Each event is hash-chained to the one before it. The database refuses UPDATE, DELETE and TRUNCATE on that table — not a promise in the docs, a trigger in Postgres.

   egress ──── allowlist ────► internet
      ▲
      │  jediná cesta venthe only way outpod ── bez routy ven · non-root · žádný docker socketno route out · non-root · no docker socket
      │
      ├── /workspace   repozitář read-only, scope cesty rwrepository read-only, scoped path rw
      ├── /ctx         kontext ze serveru, read-onlycontext from the server, read-only
      └── /run/agenticdev   token a policy na tmpfs, po skončení nictoken and policy on tmpfs, nothing after

Git po síti dělá hostitel — agent commituje lokálně a nikdy nedrží přihlašovací údaje k repozitáři. Větev odešle a pull request otevře server, až pod skončí. A hotovo neodklikne agent: je to smergovaný PR se zeleným workflow, které pustil někdo jiný než ten, kdo psal kód. Network git stays on the host — the agent commits locally and never holds credentials to your repository. The server pushes the branch and opens the pull request after the pod exits. And the agent does not get to declare itself done: done is a merged PR with a green workflow, run by something other than whoever wrote the code.

// interaktivní politikainteractive policy

Přepni fázi. Sleduj, jak se mění to, kam jde zapsat. Switch the phase. Watch what becomes writable.

Oprávnění nejsou konfigurák na něčím notebooku. Plynou z fáze, ve které projekt je, a mění se přepnutím fáze v panelu — ne úpravou uživatele. Tahle tabulka je opsaná ze scope souborů v repozitáři, ne vymyšlená pro web. Permissions are not a config file on someone's laptop. They come from the phase the project is in, and change by switching the phase in the panel — not by editing a user. This table is copied from the scope files in the repository, not invented for the website.

fázephase implementation → scope vyřešen→ scope resolved 3/9 zapisovatelných cestwritable paths

// jen přidáváníappend-only

Každé rozhodnutí končí v auditovatelné evidenci. Every decision lands in an auditable ledger.

Nic, co se na platformě stane, není mimo záznam. Přidělení úkolu, každé kolo agenta, selhaná kontrola, brána čekající na člověka i merge — všechno se zřetězí hashem s předchozí událostí a zůstane čitelné dlouho po tom, co kontejner zmizí. Nothing that happens on the platform is off the record. Task assignment, every agent round, a failed check, a gate waiting on a human, the merge — each is hash-chained to the event before it and stays readable long after the container is gone.

  • Databáze odmítne UPDATE, DELETE i TRUNCATEThe database refuses UPDATE, DELETE and TRUNCATE
  • Zřetězeno hashem — přepis je vidětHash-chained — tampering shows
  • U každého řádku kódu je vidět, ze které session vzniklEvery line of code traces to the session that wrote it
ledger.stream — živělive seq #4824

// nasazenídeployment

Jedna instance na firmu. Na strojích lidí nezůstane nic. One instance per company. Nothing lands on anyone's machine.

Agenti běží na tvém serveru, ne na notebocích. Na stroji člověka je jen ikona, která otevře terminál na serveru — žádný Docker, žádný klíč k repozitáři, nic k nastavování a nic k povolování. Nemáme centrální službu a nikdy se nedozvíme, že jsi to nainstaloval. Agents run on your server, not on laptops. All that lands on a person's machine is an icon that opens a terminal on the server — no Docker, no repository credentials, nothing to configure and nothing to approve. There is no central service, and we never learn that you installed it.

1
instance na firmuinstance per company
0
důvěry na notebookutrust on the laptop
6
fází, každá s vlastním scopephases, each with its own scope

// vyber si při instalaci// pick one at install time

DoménaDomain
vlastní doména, Let's Encrypt, žádná třetí stranayour own domain, Let's Encrypt, no third party
Tailscale
z internetu je vidět jen registraceonly enrollment is reachable from outside

// licencovánílicensing

LicenceLicensing

Zdroják je veřejný. Malé firmy zdarma, velké platí, a autor zůstane uvedený. Za čtyři roky se každá verze sama uvolní jako Apache-2.0 — takže to není past. The source is public. Small companies free, larger ones pay, and the author stays credited. Every version converts to Apache-2.0 four years after release — so it is not a trap.

Do 1 000 000 € obratuUnder €1,000,000 revenue

ZdarmaFree

Včetně ostrého provozuIncluding production

  • Neomezeně strojů a projektůUnlimited machines and projects
  • Celý zdrojový kódFull source code
  • Vyzkoušení a vývoj vždy zdarmaEvaluation and dev always free
  • Necháš v panelu uvedení „AgenticDev — © Praut s.r.o."You keep the “AgenticDev — © Praut s.r.o.” credit in the panel

Nad 1 000 000 € obratuOver €1,000,000 revenue

DomluvouLet's talk

Komerční licenceCommercial licence

  • Stejný softwareThe same software
  • Cena podle velikostiPriced by size
  • Napiš na svanda@praut.czWrite to svanda@praut.cz

Business Source License 1.1. Není to open source podle definice OSI — je to source-available. Rozdíl vysvětlujeme tady. Business Source License 1.1. Not OSI open source — source-available. We explain the difference here.

// $ jeden příkazone command

Jeden příkaz na čistém VPS. One command on a clean VPS.

Stáhne vydaný instalátor, ověří jeho sha256 i podpis cosign, pustí jeho vlastní kontrolu — a teprve pak instaluje. Zeptá se na sedm věcí a zbytek udělá sám: Docker, firewall, SSH, Postgres, Forgejo, MinIO, Caddy, řídicí vrstvu a denní zálohy. It downloads the released installer, verifies its sha256 and its cosign signature, runs the installer's own self-check — and only then installs. It asks seven questions and does the rest: Docker, firewall, SSH, Postgres, Forgejo, MinIO, Caddy, the control plane and daily backups.

root@vps

ssh root@tvuj-vps 'bash <(curl -fsSL https://raw.githubusercontent.com/Praut-Startup-Support/AgenticDev/main/install.sh)'

✓ sha256 souhlasí

✓ podpis cosign souhlasí — vydal to Praut-Startup-Support

na konci dostaneš dva odkazy: panel a odkaz pro týmat the end you get two links: the panel and one for your team

Stav je alfa a myslíme to vážně. Sandbox neběžel proti skutečnému Dockeru a doménový režim proti skutečné doméně. Než to nasadíš na ostro, přečti si Známá omezení — je to poctivý seznam, ne formalita. Alpha, and we mean it. The sandbox has not run against a real Docker daemon, nor the domain mode against a real domain. Before you deploy this for real, read Known limitations — it is an honest list, not a formality.