Projects

Own applications and technical projects.

A portfolio of projects at their actual stage. Not everything is a public product, and nothing is presented as complete unless it is complete.

BudgetPilot budget overview screen with balance, payments, and envelopes
Active MVP

BudgetPilot

A private household cash-flow planner.

Problem
Household cash flow is hard to read ahead when obligations, income, and planned spending are split between notes, spreadsheets, or banking apps.
Solution
BudgetPilot shows upcoming obligations, projected balance, and a safe amount available to spend without a bank connection or cloud account.
What this proves
Working with sensitive financial data and cash-flow logic without a bank or cloud dependency.
Main capabilities
upcoming obligations, projected balance, safe-to-spend amount, private self-hosted use, Slovak and English
Current status
Active private MVP with source code public on GitHub.
  • Self-hosted
  • Privacy-first
  • SK/EN
  • Docker

Technology and architecture: Self-hosted, Privacy-first, SK/EN, Docker.

Source code on GitHub
Muninn overview screen with document count, upcoming expirations, and work views
Active MVP

Muninn

A private self-hosted document archive with AI extraction and expiry reminders.

Problem
Contracts, invoices, and documents with a validity date (insurance policies, inspections, IDs) get lost between folders, email, and paper, and nobody tracks when something is about to expire.
Solution
Muninn archives documents, uses AI (Claude or Codex CLI, or the Anthropic API — local extraction isn't there yet on this hardware) to pull out key data, makes them full-text searchable, and sends advance and recurring reminders before expiry over Telegram.
What this proves
AI extraction over sensitive personal documents, handled safely on a self-hosted server.
Main capabilities
automatic data extraction from documents, full-text search with a highlighted match preview, expiry alerts and recurring reminders, duplicate document detection, Telegram notifications, documents and data stay on your own server
Current status
Actively used personal archive with source code public on GitHub.
  • Self-hosted
  • FastAPI
  • React
  • SQLite
  • Docker

Technology and architecture: Self-hosted, FastAPI, React, SQLite, Docker.

Source code on GitHub
Sindri script catalog with search, tags, and a list of scripts
Active MVP

Sindri

A self-hosted script catalog with AI generation, a sandbox, and remote execution.

Problem
Scripts and automation tools on homelab servers tend to scatter across dozens of folders over time, with no real overview, description, or change history.
Solution
Sindri catalogs scripts with full-text search that includes content, optional AI generation/review, isolated sandbox testing, and remote execution over SSH.
What this proves
Security thinking — sandboxing, isolation, and controlled remote code execution.
Main capabilities
full-text search across script content, import from the filesystem and remote machines over SSH, optional AI generation and review, isolated sandbox testing, content history with rollback, ~119 built-in scripts and reference cheatsheets, Slovak and English
Current status
Actively used self-hosted tool with source code public on GitHub.
  • Self-hosted
  • FastAPI
  • React
  • SQLite
  • Docker

Technology and architecture: Self-hosted, FastAPI, React, SQLite, Docker.

Source code on GitHub
Active MVP

Camera AI

Self-hosted AI notifier for home cameras with Telegram alerts.

Problem
Common NVR setups either flood you with alerts on every motion, or require an expensive cloud AI service to figure out what actually happened.
Solution
Camera AI reacts to Hikvision camera events, locally recognizes people, vehicles, license plates, and faces (no cloud), and sends only the relevant photo over Telegram.
What this proves
Edge AI inference (ONNX, local face and license-plate recognition) on low-power hardware with no cloud dependency.
Main capabilities
local license-plate recognition, local face recognition (opt-in), Telegram photo alerts, multiple cameras at once, Frigate-style review UI, runs on Orange Pi/low-power ARM64
Current status
Actively used home system, v1.0.0 released on GitHub with automated tests.
  • Self-hosted
  • FastAPI
  • ONNX
  • SQLite
  • Docker

Technology and architecture: Self-hosted, FastAPI, ONNX, SQLite, Docker.

Source code on GitHub
brokkr in interactive mode proposing a shell command and asking for confirmation before running it
Active MVP

brokkr

A local, sandboxed AI agent that proposes and (with human approval) executes shell commands — for ordinary homelab hardware, not a datacenter.

Problem
Local AI agents either never execute a command at all, or run it directly on the real machine with no isolation and no record of what happened — and almost all of them assume a powerful GPU.
Solution
brokkr runs proposed commands inside a Docker sandbox that holds even when the model gets it wrong, with a complete audit log of what was proposed, decided, and actually executed. Developed and tested on a laptop with 6GB of VRAM.
What this proves
Security-conscious AI tooling design — sandboxing as a real boundary, not just one of several layers, and a real security gap found and fixed through ordinary use, not just in theory.
Main capabilities
Docker sandbox as a real security boundary, complete audit log of proposal/decision/execution, targets ordinary homelab hardware (6GB VRAM), CI with tests, lint, and CodeQL security scanning
Current status
Actively used and tested, source code public on GitHub under Apache-2.0.
  • Self-hosted
  • Docker
  • Python
  • Security

Technology and architecture: Self-hosted, Docker, Python, Security.

Source code on GitHub
Active MVP

Mímir

A self-hosted personal chronicle built for collaboration with an AI coding agent — a full-text-searchable journal that writes itself.

Problem
A normal AI conversation has history, but it's locked inside the provider's own app — you can't really search it, and once the session ends it effectively disappears into the next one.
Solution
Mímir takes what would already be flowing through an AI assistant during ordinary work and stores it itself as a full-text-searchable daily log — plus a separate archive of full terminal history (with sensitive-data redaction), a cross-source timeline per project (journal + git commits + terminal), and an AI-generated handoff briefing for a project.
What this proves
Designing tools for genuine human+AI collaboration, not just an app a human types into by hand — including the security model (quarantine for sensitive data, a separate password required to delete anything).
Main capabilities
full-text search via FTS5, AI recall/digest/handoff briefing, terminal history archive with sensitive-data quarantine, cross-source project timeline (journal + git + terminal), separate admin password required to delete data
Current status
Used daily as a personal tool, source code public on GitHub under Apache-2.0.
  • Self-hosted
  • FastAPI
  • React
  • SQLite

Technology and architecture: Self-hosted, FastAPI, React, SQLite.

Source code on GitHub
Android desktop mode from a Galaxy S20 Ultra running on an external monitor, with a taskbar and desktop icons
Active build

S20 NetHunter Handheld

A Galaxy S20 Ultra turned into a full Linux/pentesting handheld — a custom kernel port and native Android desktop mode.

Problem
This phone (Exynos S20 Ultra, z3s) has no official NetHunter support, and the only older community kernel for this chip is from 2023, targets Android 13, and is only partially functional — a working kernel for the current LineageOS 23/Android 16 branch was missing.
Solution
A custom kernel port with fixed Bluetooth/USB/networking bugs, a native Kali NetHunter chroot, and a working native Android desktop mode on an external monitor — not Samsung DeX, actual AOSP windowing.
What this proves
Kernel-level Linux/Android engineering with no existing documentation to lean on — cross-compilation, boot image patching, SELinux/Magisk, blind systems diagnostics.
Main capabilities
custom kernel with fixed BT/USB/NCM bugs, native Kali chroot with SSH access, Android desktop mode on an external monitor, permanent USB HID/ADB/serial gadget, a complete field manual
Current status
Actively used personal handheld, source code and build environment public on GitHub.
  • Linux kernel
  • Android
  • NetHunter
  • Reverse engineering

Technology and architecture: Linux kernel, Android, NetHunter, Reverse engineering.

Field manual and technical details
Actively deployed

sudo-approve

Remote sudo approval over WebAuthn/FIDO2 — a physical key, Face ID, or Touch ID instead of a TOTP code.

Problem
Approving sudo remotely (from an iPad/iPhone) usually means reading and typing a TOTP code by hand. Commercial SSH clients with FIDO2 agent-forwarding support are either paid or not reliably documented for this.
Solution
A self-hosted WebAuthn backend that Safari on iOS/iPadOS can talk to natively — no app, no subscription. A push notification with a direct link starts the WebAuthn ceremony automatically on open; a PAM script on the server waits for approval and always falls back to TOTP on any failure or timeout.
What this proves
Working with WebAuthn/FIDO2 cryptography, PAM integration, and security tradeoffs (graceful fallback, authenticating the registration endpoint itself) instead of a weaker bearer-token approach.
Main capabilities
approve via physical FIDO2 key, Face ID, or Touch ID, push notification with a direct link via ntfy, PAM sufficient/fallback to TOTP on any failure, no app or subscription — plain WebAuthn in Safari
Current status
Actively used across two machines in the homelab, source code public on GitHub.
  • FastAPI
  • python-fido2
  • WebAuthn
  • PAM
  • Docker

Technology and architecture: FastAPI, python-fido2, WebAuthn, PAM, Docker.

Source code on GitHub