This is a submission for the Hacktoberfest Open-Source AI Challenge Week 3: Slow and Steady
What I Built
Moss is a local-first assistant that does the chores you put off — while you sleep. It runs entirely on your own machine using open-weight models (via Ollama), and leaves a single Morning Brief each day summarizing what it did.
Three "sloth" skills, one CLI:
-
moss tidy ~/Downloads— sort, rename, archive clutter (dry-run by default) -
moss digest whatsapp.txt— two-line summary, who you owe, dates, ignore verdict -
moss fridge fridge.jpg— grocery list from a fridge photo -
moss nap— run everything configured overnight, write the Morning Brief -
moss undo— restore the last tidy run exactly, byte for byte
The Morning Brief is a single self-contained HTML file (inline CSS, inline SVG sloth, no JS, no CDN) plus a Markdown twin. It works offline, is dark-mode ready, and mobile-friendly.
Example output:
$ moss nap --demo --paranoid
Morning. Moss finished while you slept.
Brief: /home/soham/Moss/morning/2026-10-23.html
/home/soham/Moss/morning/2026-10-23.md
Cloud API cost: $0.00
Paranoid proof: 0 outbound connections attempted. Model ran on localhost only.
Demo
Moss is local-first by design, so there's nothing to deploy — it runs on your laptop. Try the full pipeline with no model installed:
pip install -e .
ollama pull qwen3:4b
cp moss.example.yaml ~/Moss/moss.yaml
# edit ~/Moss/moss.yaml to taste
moss nap --demo --paranoid
The --demo flag uses a mock backend, so no model download is required. Add --paranoid to prove zero outbound connections.
Code
Moss is MIT-licensed, written in Python 3.11+, and structured around a backend-agnostic LLM interface (BaseBackend with generate and generate_json) so you can swap Ollama, llama.cpp/LM Studio, or a deterministic mock in one line.
Install and run:
pip install -e .
moss nap --demo --paranoid
Skills live in src/moss/skills/ (tidy, digest, fridge), extraction in src/moss/extract/ (PDF, DOCX, mbox, WhatsApp, Telegram, plain text), and storage is SQLite with an append-only undo journal for byte-for-byte restoration.
Moss
Does the work while you hang around.
A local-first assistant that grows on you while you sleep. Built for the "Slow and Steady" theme (International Sloth Day): open-weight models at its core, runs entirely on your own machine, and rewards laziness by doing the chores you put off.
What it does (15 seconds)
Moss runs overnight and leaves a single Morning Brief (~/Moss/morning/YYYY-MM-DD.html +
a .md twin). It has three sloths ("skills"), one CLI:
$ moss tidy ~/Downloads # sort, rename, archive clutter (dry-run by default)
$ moss digest whatsapp.txt # two-line summary, owes, dates, ignore verdict
$ moss fridge fridge.jpg # grocery list from a fridge photo
$ moss nap # run everything configured, write the Morning Brief
$ moss undo # restore the last tidy run exactly
Example terminal transcript:
$ moss nap --demo --paranoid
Morning. Moss finished while you slept
Brief: /home/soham/Moss/morning/2026-10-23.html
/home/soham/Moss/morning/2026-10-23.md
Cloud API…How I Built It
Moss is built around open-weight models running locally, not closed cloud APIs.
-
Backend: Ollama (
localhost:11434) withqwen3:4bfor text tasks (tidy, digest) andqwen2.5vl:7bfor vision (fridge photo). Verified end-to-end withgemma4:31b-cloud(32.7B on CPU) via Ollama. -
Backend abstraction: A common
BaseBackendinterface keeps skills backend-agnostic. AMockBackendpowers--demomode, so the full pipeline runs with no model installed — essential for hackathon sandboxes without Ollama. - Stack: Python 3.11, Typer (CLI), Rich (terminal output), Pydantic v2 (config), PyYAML, psutil (battery/idle detection), pypdf + python-docx + Pillow (extraction), Jinja2 (brief HTML), httpx (Ollama client), SQLite (cache + undo journal), pytest + ruff.
-
Paranoid mode:
--paranoidmonkeypatchessocket.socketso any non-loopback connection raisesOfflineError. Proof: 0 outbound connections — nothing phones home. -
Slow and steady: Runs at
nice -n 19, skips runs on battery below 40%, caches decisions by content hash so nothing repeats, and schedules at 2:00 AM by default.
Why Does Open Innovation Matter?
Open innovation made Moss possible in ways a closed API never could:
-
Airplane mode works.
moss paranoidproves 0 outbound connections. Your model runs onlocalhost; nothing leaves the machine. - Your data stays put. Downloads, WhatsApp exports, email, fridge photos — all processed locally. No uploads to third-party servers.
-
Zero cost. Cloud API cost:
$0.00. No subscription, no per-call fees, no model deprecation risk. -
You own the behavior. Swap models with
moss use gemma3:4b. Edit prompts and config inmoss.yaml. Hosted assistants don't let you do this.
A hosted assistant would need your personal chats and file contents sent to a third party, wouldn't work without internet, would charge recurring fees for a nightly job, and could deprecate the model you depend on overnight. Moss avoids all of that.
My Agent Session
The Lazy Payoff
Moss saves you from the chores you keep postponing: sorting a messy Downloads folder, summarizing long WhatsApp threads, checking what's missing from the fridge. It runs overnight at low priority (nice -n 19), so you wake up to a done list instead of a to-do list. The undo journal means you can restore any tidy run byte-for-byte if you change your mind.
Prize Categories
- Hacktoberfest Open-Source AI Challenge Week 3: Slow and Steady
tags - #devchallenge #hacktoberfest #ai #opensource #python
Top comments (0)