TreeMap
무료 오픈소스 디스크 사용량 시각화 도구로, 사각형 트리맵·중복 파일 탐색·디스크 가득 예측·정리 시 파일을 휴지통으로만 이동한다
Lotse는 모든 작업을 한눈에 볼 수 있는 로그북 긴 휴식 후 재시작 폴더·Git 자동 기록 프로젝트 보안 보관함 제공
Lotse ist das Logbuch für alle deine Vorhaben. Wiedereinstieg nach langen Pausen, alle Projekte auf einen Blick, automatisches Logbuch aus Ordnern und Git, Tresor am Projekt. Ende-zu-Ende verschlüssel
생산성Rust · HTMLGitHub @phish3144온라인운영자 미확인
써 보셨어요? 한 번만 눌러 주세요. 로그인은 필요 없어요.
Logbuch für Vorhaben: Stand, nächste Schritte, Material und Zugänge an einem Ort
저장소 README에서 가져옴
README 전체를 불러오는 중입니다. 아래는 저장된 발췌입니다.
Das Logbuch für alle deine Vorhaben. Software, Werkstatt, Haus, Musik, Steuer, Reise: für jedes Projekt an derselben Stelle *worum geht es, wo stehe ich, was war zuletzt, was ist der nächste Schritt, wo liegt das Material, wie komme ich rein?* Lotse löst vier Probleme: Wiedereinstieg in alte Projekte, den Faden nicht verlieren, das Rad nicht neu erfinden, Geheimnisse sicher am Projekt aufbewahren. Damit aktualisiert apt upgrade Lotse zusammen mit allem anderen – kein Knopf, kein Download.README 전문 보기 ↗
Das Logbuch für alle deine Vorhaben. Software, Werkstatt, Haus, Musik, Steuer, Reise: für jedes Projekt an derselben Stelle worum geht es, wo stehe ich, was war zuletzt, was ist der nächste Schritt, wo liegt das Material, wie komme ich rein?
Lotse löst vier Probleme: Wiedereinstieg in alte Projekte, den Faden nicht verlieren, das Rad nicht neu erfinden, Geheimnisse sicher am Projekt aufbewahren.
Damit aktualisiert apt upgrade Lotse zusammen mit allem anderen – kein Knopf, kein
Download.
Debian, Ubuntu, Mint – Quelle hinterlegen:
curl -fsSL https://lotse.sanctora.eu/lotse-archiv.gpg \
| sudo tee /usr/share/keyrings/lotse-archiv.gpg > /dev/null
echo "deb [signed-by=/usr/share/keyrings/lotse-archiv.gpg] https://lotse.sanctora.eu/apt stable main" \
| sudo tee /etc/apt/sources.list.d/lotse.list
Installieren:
sudo apt update && sudo apt install lotse
Fedora, openSUSE, RHEL:
sudo curl -fsSL -o /etc/yum.repos.d/lotse.repo https://lotse.sanctora.eu/rpm/lotse.repo
sudo dnf install lotse
Die Quelle ist signiert; eine veränderte Quelle lehnt apt mit BADSIG ab. In ihr steht
immer die neueste Fassung – zum Aktualisieren genügt das, eine ältere gezielt zu
installieren geht darüber nicht.
Alle Dateien liegen bei den Releases, jede
mit .sha256 daneben:
| Datei | Aktualisiert sich |
|---|---|
Lotse_<version>_amd64.AppImage | aus der App heraus, signaturgeprüft |
Lotse_<version>_x64-setup.exe (Windows) | aus der App heraus |
Lotse_<version>_x64.dmg / _aarch64.dmg (macOS) | aus der App heraus |
lotse-cli-<version>-<ziel>.tar.gz | von Hand |
Mehr, auch zur Einrichtung der Paketquelle für den Betrieb: Installation.
Veröffentlicht als 0.11.0 (Vorabversion: das Datenformat kann sich noch ändern; der
Klartext-Spiegel ist die Sicherung, der du trauen kannst). Siehe docs/CONCEPT.md
Abschnitt 11 für die Roadmap und
Änderungen für das, was je Fassung
dazukam.
| Teil | Stand |
|---|---|
| Konzept, Bedrohungsmodell, Nicht-Ziele, Sync-Protokoll | geschrieben (docs/) |
| Rust-Kern: Modell, Krypto, Tresor mit zwei Stufen, Sync-Umschläge, SQLCipher-Speicher mit Änderungsprotokoll und Volltextsuche, Projekterkennung, Git-Import, Spiegel- und age-Export | läuft, getestet |
CLI lotse | läuft |
| Web-Oberfläche (Svelte) | läuft in der Desktop-Hülle gegen den Kern; im reinen Browser noch gegen Beispieldaten |
| Sync-Dienst (Cloudflare Worker) + Sync-Client im Kern und in der CLI | läuft, End-to-End getestet (scripts/sync-e2e.sh) |
| Desktop-Hülle (Tauri 2) | läuft. Anlegen, erfassen, Fäden abhaken, Status mit Übergabe, Projektkopf bearbeiten, Referenzen anlegen/prüfen/öffnen, Tresor lesen/anlegen/löschen, Ordner scannen und laufend beobachten, Stand von GitHub/GitLab holen, Termine aus abonnierten Kalendern, KI-Verdichtung des Briefs, Update-Hinweis, Export (Spiegel und age-Bundle), Abgleich mit Geräteverwaltung, Passwortwechsel und Konto-Wiederherstellung. Sperrt nach Untätigkeit von selbst und räumt die Zwischenablage. Der Updater tauscht sich signaturgeprüft selbst aus, MCP läuft aus der entsperrten Sitzung. Offen: Tray |
Landing Page (site/) | fertig, Deploy per GitHub Pages |
| Ordner-Beobachter | läuft, in der CLI (lotse beobachten) und in der Desktop-App |
MCP-Server (lotse mcp) | läuft |
| Remote-Git (GitHub und GitLab: offene PRs/MRs, Issue-Zahl, Prüflauf) | läuft im Kern, in der App und in der CLI (lotse gegenseite) |
| KI-Verdichtung des Briefs (Ollama, Gemini, jede OpenAI-kompatible Adresse) | läuft im Kern und in der App; standardmäßig aus, Verbrauch und Protokoll sichtbar |
| Datei deuten (PDF, Text, Markdown, CSV, JSON) | läuft in der App: eine Datei, vom Menschen gewählt, Auszug vor dem Senden sichtbar |
Kalender lesend (iCalendar/.ics, auch webcal://) | läuft im Kern, in der App und in der CLI (lotse termine) |
| Update-Weg | läuft: auf Linux über die eigene signierte APT-/RPM-Quelle (apt upgrade), aus einem AppImage heraus tauscht die App sich selbst aus, sonst Hinweis mit der passenden Datei (lotse update) |
git log je Repo auf.
Bei vielen Repos stockt die Oberfläche dabei spürbar. Sauber lösen ließe sich das mit
einer eigenen Datenbankverbindung für den Beobachter – das berührt aber die
HLC-Vergabe und damit den Abgleich, deshalb steht es aus und wird nicht nebenbei
gemacht.github.com
und gitlab.com. Der Hostname einer eigenen Instanz lässt sich nicht erraten; dafür
braucht es eine Einstellung, die es noch nicht gibt.Vollständig, damit nichts überrascht. Alles andere passiert nur auf Knopfdruck.
| Wann | Wohin | Abschaltbar |
|---|---|---|
| Beim Entsperren der App, höchstens einmal am Tag | Veröffentlichungen dieses Projekts auf GitHub (Update-Hinweis) | ja, Einstellungen → Version und Updates |
| Beim Öffnen einer Projektseite, die eine Kalender-Referenz hat, höchstens alle 15 Minuten je Adresse | Die eingetragene Kalenderadresse | ja, indem die Referenz entfernt wird |
| Im Ordner-Beobachter, höchstens alle 30 Minuten | GitHub bzw. GitLab zu den erkannten Repos | ja, ausgeschaltet bis eingeschaltet, Einstellungen → GitHub und GitLab |
| Beim Abgleich | Der eingerichtete Sync-Dienst | ja, kein Abgleich eingerichtet = keine Verbindung |
Die KI-Verdichtung sendet nur, wenn jemand auf Senden drückt, und zeigt vorher den vollständigen Text. Was dabei gesendet wurde – wann, wohin, wie viel –, steht unter Einstellungen → KI-Verdichtung; der Text selbst wird nicht aufbewahrt. Telemetrie gibt es nicht, auch keine anonyme.
cargo build -p lotse-cli
export LOTSE_HOME=$PWD/.lotse-daten
./target/debug/lotse init --geraet "Laptop"
./target/debug/lotse projekt neu "Gartenhaus" --vorlage haus --kurs "Fundament bis Oktober."
./target/debug/lotse log "@Gartenhaus Beton bestellt"
./target/debug/lotse log --projekt Gartenhaus --offen "Bewehrung nötig?"
./target/debug/lotse hafen
./target/debug/lotse projekt zeige Gartenhaus
./target/debug/lotse scan ~/Projekte
./target/debug/lotse tresor add "Fritzbox" --projekt Gartenhaus passwort=xyz
./target/debug/lotse tresor zeige Fritzbox passwort
./target/debug/lotse export bundle backup.json.age
./target/debug/lotse gegenseite --trocken
./target/debug/lotse termine --tage 30
./target/debug/lotse update
gegenseite sucht zu jedem Projekt ein Repo bei GitHub oder GitLab – entweder aus einer
eingetragenen Adresse oder aus dem Git-Remote eines Ordners, den das Projekt schon kennt –
und schreibt eine verdichtete Zeile ins Logbuch: offene Pull- bzw. Merge-Requests, Zahl
offener Issues, Zustand des Prüflaufs. Issues werden dabei nicht zu offenen Fäden.
Ein Token ist nur für private Repos und ein größeres Kontingent nötig: entweder in
LOTSE_FORGE_TOKEN oder als Tresor-Eintrag, den die Desktop-App unter Einstellungen →
GitHub und GitLab hinterlegt.
termine liest die Kalender, die als Referenz am Projekt hängen (Typ url oder datei,
Adresse auf .ics oder webcal://), und zeigt, was ansteht. Geschrieben wird dabei
nichts: Termine bleiben im Kalender.
update sieht bei den Veröffentlichungen dieses Projekts nach, ob es eine neuere
Version gibt, und nennt die Datei für dieses System – passend dazu, wie Lotse
installiert wurde: aus einem Paket heraus nennt es den Befehl der Paketverwaltung statt
einer Datei. Die Kommandozeile lädt selbst nichts herunter; die Desktop-App tauscht sich
aus einem AppImage heraus selbst aus und prüft dabei die Signatur gegen den eingebauten
öffentlichen Schlüssel. Denselben Hinweis zeigt sie beim Entsperren, höchstens einmal am
Tag, abschaltbar unter Einstellungen → Version und Updates.
init zeigt einmalig den Wiederherstellungscode und den Desktop-Schlüssel. Beides gehört
in den Passwortmanager. Einträge der Stufe »nur Desktop« brauchen den Desktop-Schlüssel
(aus dem OS-Schlüsselbund, sonst Umgebungsvariable LOTSE_DESKTOP_KEY).
Das age-Bundle lässt sich ohne Lotse entschlüsseln: age -d -o bundle.json backup.json.age.
Die Adresse des Dienstes ist eingebaut; --url braucht nur, wer selbst hostet.
# Erstes Gerät: Konto beim Dienst registrieren (fragt den Wiederherstellungscode ab)
lotse sync register --email [email protected]
# Weiteres Gerät: anmelden, alles herunterladen
lotse sync login --email [email protected] --geraet "Laptop"
lotse sync jetzt # pushen, dann pullen
lotse sync status # lokal und entfernt
lotse sync geraete # Geräte des Kontos, `lotse sync widerrufen <id>` entzieht eines
Lokal testen: scripts/sync-e2e.sh startet den Dienst mit wrangler dev und lässt den
End-to-End-Test des Kerns dagegen laufen. Der Dienst sieht dabei nur Umschläge.
lotse mcp spricht das Model Context Protocol über stdin/stdout. Werkzeuge: list_projects,
get_project_context, log_activity, list_open_threads, search. Der Tresor ist über
diese Schnittstelle nicht erreichbar. Für Claude Code:
claude mcp add lotse --env LOTSE_HOME=$HOME/.lotse --env LOTSE_PASSWORD=… -- lotse mcp
Das Passwort in der Umgebung ist ein Kompromiss für die Kommandozeile; die Desktop-App wird den Server aus der entsperrten Sitzung heraus starten.
site/ ist die Landing Page (eine HTML-Datei ohne Fremdressourcen). Der Workflow
.github/workflows/pages.yml veröffentlicht sie auf GitHub Pages, sobald in den
Repo-Einstellungen unter Pages die Quelle GitHub Actions gewählt ist. Auf einem
kostenlosen GitHub-Konto muss das Repository dafür öffentlich sein; alternativ lässt sich
site/ unverändert auf Cloudflare Pages legen.
.github/workflows/release.yml baut bei einem Tag v* die Kommandozeile und die
Desktop-Installer für Windows, macOS und Linux und hängt sie an ein GitHub-Release. Die
Landing Page zeigt die neueste Veröffentlichung automatisch an. Builds sind unsigniert;
solange das so ist, sagt die App nur Bescheid, statt sich selbst zu ersetzen. Für einen
selbsttätigen Updater fehlt genau ein Stück: ein Signaturschlüsselpaar
(npm exec tauri signer generate), der öffentliche Teil in tauri.conf.json, der private
als Repository-Secret TAURI_SIGNING_PRIVATE_KEY für release.yml.
git tag v0.1.0 && git push origin v0.1.0
App-Icons entstehen aus apps/desktop/src-tauri/icons/icon.svg mit scripts/make-icons.sh
(braucht ein headless Chromium und Python 3).
Siehe CLAUDE.md für die Verzeichnisstruktur und die Prüfbefehle.
GNU Affero General Public License v3.0 only – der vollständige Text steht in
LICENSE.
Kurz: Du darfst Lotse benutzen, verändern und weitergeben. Wer eine veränderte Fassung als Netzdienst anbietet, muss seinen Quellcode offenlegen (§13) – genau dafür ist die AGPL da. Selbst betreiben bleibt ausdrücklich erwünscht und kostenlos.
Als alleiniger Urheber bleibt eine zusätzliche kommerzielle Lizenzierung möglich; siehe
docs/BUSINESS.md Abschnitt 3.
| WebAssembly-Client für den Browser |
halb: der Kern spricht im Browser (crates/lotse-wasm, Krypto, Umschläge, Brief – in CI gegen echtes Chromium geprüft), der Datenweg fehlt. Plan in docs/WEB_CLIENT.md |