Keep dead software alive, and prove every change safe before it ships.
molt revives abandoned apps, patches them, migrates their databases, and modernizes them with AI, all on its own. It makes the one dangerous change nobody dares, then proves it safe on a throwaway clone before anything reaches production.
9
Lifecycle stages covered
plan to govern
8
Ecosystems proven on
Rails, Python, Node, more
441
Tests, green on GitLab CI
26 of 26 jobs pass
100%
Changes proven before ship
on a clone, never prod
What molt does
one engine, four surfaces, all proof-backed
Patch and keep secure, continuously
Reads live OSV, CISA KEV and EPSS feeds, finds what the app actually imports, and ships the least breaking fix. A newly disclosed CVE re-opens the loop on its own.
archivy: 3 real CVEs closed, app still boots
Prove database migrations safe
The dangerous change nobody automates. It runs the old and new versions over the same rows on a clone and proves the previous release cannot tell anything happened. Postgres, MySQL, Mongo and Neo4j.
Neo4j: dirty is UNSAFE, clean is SAFE (live)
Revive into an AI app, proven good
Turns a dead app into one with a grounded support agent: hybrid retrieval plus rerank, cites every claim, escalates when unsure. molt proves the AI is actually good before it ships.
scifact: rerank lifts recall@10 .836 to .852
Keep it alive in production
An error budget gate decides when molt may ship hands-off. When something breaks it localizes the cause, proves a fix, and ships it. The step others cannot take, because they cannot prove safety.
observe, localize, prove, ship
The live store
real data from this app on Google Cloud, loaded live
—
Customers
/reports/active
—
Products
/products
—
Top seller, units
/reports/top-products
loading products…
Ask the assistant
live tenant-isolated retrieval over the docs, on Google Cloud
Type a question and press Ask. It queries the live assistant running on Google Cloud.
Adopted apps
real abandoned projects, tap to expand
Proof in action
the fix most tools get wrong, done right
archivy, werkzeug
CVE-2023-46136, app pins werkzeug==2.3.3
1
Find the hole
live OSV says werkzeug 2.3.3 is vulnerable (CVE-2023-46136)
2
Pick the least breaking fix
newest safe is 3.1.9, a major jump that breaks the app. molt picks 2.3.8, in line.
3
Install it in a clean clone
werkzeug 2.3.3 to 2.3.8, requests to 2.33.0, jinja2 to 3.1.6
4
Boot the app and verify
app still imports, the hole is closed, behaviour preserved
PROVEN. The fixes install and the app still boots. A naive bump to 3.1.9 would have broken it.
The agent office routes the work
not everything is a version bump
archivy
3 findings, all clean in line bumps, so
hands-off, fast deterministic path
cabot (Python 2)
13 findings, 7 need a breaking upgrade, and the runtime is dead, so
language port, flagged for a human
A planner classifies each problem (version bump, sandbox upgrade, dead library swap, or language port) and sends the cheap cases down the fast deterministic path, spending an agent only on the hard ones.
Decision ledger
hash-chained, append-only, every ship recorded
app, change, proof
chain verified
ce9b6c28
helpyio/helpy, rails-html-sanitizer 1.3.0 to 1.5.0CVE-2022-32209, data URI payload stripped
PROVEN
a1f4·2e7d
archivy, werkzeug 2.3.3 to 2.3.8CVE-2023-46136, app boots on the fix
PROVEN
7b20·c93a
demo, add users.last_login (NOT NULL plus backfill)expand and contract, old build reads unchanged
PROVEN
33e9·08b1
graph, unique constraint User.emailchecked on live data, 0 violations