Support knowledge that open-source projects publish themselves, brought to the machine where something broke — read locally under consent, verified against a public signed log. Early beta.
0
stars
3
commits
Python
primary language
Sep 13, 2026
updated
One support client for every open-source project — instead of pasting logs into an issue and waiting days for "which version? which GPU? what does the log say?"
A project publishes a few static files in the repository it already has. The client, on anybody's machine, reads what that project asked for — each reading shown and agreed to separately — matches it against the project's own rules, and gives the project's own answer at the moment something broke. No server to run, no model to pay for, nothing to install per project.
Early beta. The operator runs at https://sdota.de. Clients for Windows, Linux and macOS: download 0.1.0 (unsigned — INSTALL.md says how to start them anyway, and what they send).
| You are | Start with |
|---|---|
| Maintaining an open-source project | ONBOARDING.md — publish the files, register, see what your users run into |
| Someone with a broken machine | INSTALL.md — install the client, and what it does and does not send |
| Checking how it works | SERVER.md, spec/, TESTCASES.md |
.podshl/agent.yaml and the solution files it
names, in your repository — or built with the form at
sdota.de/publish/build. They stay yours: in
every clone, and they outlive this service.answers.when is matched exactly: the
same configuration gets the same answer, and you can see which fact decided it. maintainer operator (sdota.de) user
.podshl/ in the repo ---> mirror + signed public log ---> client
| reads locally,
| item by item
matches the project's rules <-----+ sends only
stores nothing of the lookup | what you agreed
----------- the fix -----------> +
| shows, dry-runs,
optional report, pseudonymous <----+ applies
Matching is rule evaluation over closed vocabularies, not generation, so no model is in the path where a project has published. Where nothing is published, the client can still help with a model you choose — a local one keeps everything on your machine.
# the operator, its database and the test counterparty, in one container
docker compose up -d
docker compose exec podshl python run_testcases.py
# the client, natively
cd client-rs && cargo run
How the release packages are built, and what each one has been run on: RELEASING.md. How sdota.de is deployed: deploy/.
client-rs/ | The client — Rust and Tauri, a binary of under 7 MB |
src/podshl/server/ | The operator — mirror, signed transparency log, anchor checks, reports, dashboard |
spec/ | The protocol — prose, both vocabularies, schemas, worked examples, the log monitor |
deploy/ | Docker Compose, firewall and backup for running an operator |
examples/engram/ | A real project taken from nothing to a dashboard, with screenshots and screencasts |
FINDINGS.md | What was measured before this was built, and what was discarded because of it |
AGPL-3.0 for the code; Apache-2.0 for spec/ code and schemas and
CC-BY-4.0 for its prose, so the protocol can be implemented without the
implementation inheriting a licence — LICENSING.md.
No warranty. Support content is written by the projects themselves; the operator mirrors it and names the project in every answer. The client bounds what a change can do, not whether it fixes anything — back up what matters.
Found something? SECURITY.md.
3 commits
Python
43.2%
Rust
33.8%
HTML
16.1%
JavaScript
4.4%
Support knowledge that open-source projects publish themselves, brought to the machine where something broke — read locally under consent, verified against a public signed log. Early beta.
0
stars
3
commits
Python
primary language
Sep 13, 2026
updated
One support client for every open-source project — instead of pasting logs into an issue and waiting days for "which version? which GPU? what does the log say?"
A project publishes a few static files in the repository it already has. The client, on anybody's machine, reads what that project asked for — each reading shown and agreed to separately — matches it against the project's own rules, and gives the project's own answer at the moment something broke. No server to run, no model to pay for, nothing to install per project.
Early beta. The operator runs at https://sdota.de. Clients for Windows, Linux and macOS: download 0.1.0 (unsigned — INSTALL.md says how to start them anyway, and what they send).
| You are | Start with |
|---|---|
| Maintaining an open-source project | ONBOARDING.md — publish the files, register, see what your users run into |
| Someone with a broken machine | INSTALL.md — install the client, and what it does and does not send |
| Checking how it works | SERVER.md, spec/, TESTCASES.md |
.podshl/agent.yaml and the solution files it
names, in your repository — or built with the form at
sdota.de/publish/build. They stay yours: in
every clone, and they outlive this service.answers.when is matched exactly: the
same configuration gets the same answer, and you can see which fact decided it. maintainer operator (sdota.de) user
.podshl/ in the repo ---> mirror + signed public log ---> client
| reads locally,
| item by item
matches the project's rules <-----+ sends only
stores nothing of the lookup | what you agreed
----------- the fix -----------> +
| shows, dry-runs,
optional report, pseudonymous <----+ applies
Matching is rule evaluation over closed vocabularies, not generation, so no model is in the path where a project has published. Where nothing is published, the client can still help with a model you choose — a local one keeps everything on your machine.
# the operator, its database and the test counterparty, in one container
docker compose up -d
docker compose exec podshl python run_testcases.py
# the client, natively
cd client-rs && cargo run
How the release packages are built, and what each one has been run on: RELEASING.md. How sdota.de is deployed: deploy/.
client-rs/ | The client — Rust and Tauri, a binary of under 7 MB |
src/podshl/server/ | The operator — mirror, signed transparency log, anchor checks, reports, dashboard |
spec/ | The protocol — prose, both vocabularies, schemas, worked examples, the log monitor |
deploy/ | Docker Compose, firewall and backup for running an operator |
examples/engram/ | A real project taken from nothing to a dashboard, with screenshots and screencasts |
FINDINGS.md | What was measured before this was built, and what was discarded because of it |
AGPL-3.0 for the code; Apache-2.0 for spec/ code and schemas and
CC-BY-4.0 for its prose, so the protocol can be implemented without the
implementation inheriting a licence — LICENSING.md.
No warranty. Support content is written by the projects themselves; the operator mirrors it and names the project in every answer. The client bounds what a change can do, not whether it fixes anything — back up what matters.
Found something? SECURITY.md.
3 commits
Python
43.2%
Rust
33.8%
HTML
16.1%
JavaScript
4.4%