{"slug": "week3", "title": "WEEK3", "summary": "A developer built Agent Logger, a local, privacy-first logbook for AI coding agents that records each session's agent, repo, branch, timing and status in SQLite, snapshots the repo with git to detect changed and new files, and generates short summaries using a local open-weight model via Ollama. A private Discord bot exposes /status, /sessions and /changes slash commands restricted to an allowlist of user IDs, with only file names and counts sent to the model and every reply ephemeral. The project ships with 92 pytest tests and a layered summarizer that falls back to llama-cpp-python or a deterministic template if no model is running.", "body_md": "This is a submission for the Hacktoberfest Open-Source AI Challenge Week 3: Slow and Steady\n\nWhat I Built\n\nAgent Logger is a local, privacy-first logbook for AI coding agents, with a private Discord bot on top.\n\nCoding agents are great at making changes and terrible at telling you what they did. Once I had several agent sessions going across different repos, I kept losing track of which agent touched what, on which branch, and whether it was finished. Agent Logger answers that without me having to dig through git diff:\n\nagent-logger start ~/claude-token-counter --agent claude-code\n\nagent-logger end\n\nIt records the session (agent, repo, branch, start/end time, status) in a local SQLite database, snapshots the repo with git so it knows which files were modified and which were newly created, and writes a short summary with a local open-weight model.\n\nThen from my phone, in Discord:\n\n/status shows the session that's running right now\n\n/sessions lists recent sessions across all my repos\n\n/changes shows the summary and file list for the latest session\n\nWho gets to be lazier? Anyone running coding agents. You don't have to babysit the terminal or reread diffs to know what happened. You check Discord.\n\nDemo\n\nYou can reproduce it end to end in about 5 seconds. The demo script creates a throwaway repo, runs a full session, and cleans up after itself:\n\nbash scripts/demo.sh\n\n==> 1. Start a tracked session\n\nStarted session: session_f650cf60\n\nAgent: demo-agent\n\nBranch: main\n\n==> 3. End the session (records changed/new files, generates summary)\n\nEnded session: session_f650cf60\n\nFiles changed: 2\n\nNew files: 1\n\n==> 4. Show session status\n\n  f650cf60 | demo-agent | repo | main | completed\n\nCode\n\nA local coding-agent session logger with a private Discord bot. Track coding sessions record file changes, and get AI-powered summaries — all running locally.\n\n`/sessions`, `/status`, and `/changes` commands restricted to your user ID\n\n```\n# Clone/create the repository\ngit clone <your-repo> agent-logger\ncd agent-logger\n# Create a virtual environment (already set up)\nsource .venv/bin/activate\n\n# Install the package in development mode\npip install -e .\n\n# Or using the venv python directly:\n/Users/rathnam.s/agent-logger/.venv/bin/python3 -m\n```\n\n…\ncli.py provides the start, end, status, changes, track and serve commands\n\nstate.py stores sessions in SQLite\n\ngit_tracker.py detects changes with git snapshots and git diff --numstat\n\nsummarizer.py writes the summary with a local model, or a deterministic fallback\n\ndiscord_bot.py provides the /sessions, /status and /changes slash commands\n\nThere are 92 pytest tests covering the state, git, summarizer, bot and CLI modules\n\nHow I Built It\n\nPython 3.14, managed with uv\n\nOllama runs the open-weight summarization model locally. I used phi (AGENT_LOGGER_MODEL=ollama:phi), served at localhost:11434.\n\nllama-cpp-python is an optional second backend that points at any local .gguf file\n\ndiscord.py for the slash-command bot, aiosqlite/SQLite for storage, httpx to talk to Ollama\n\n[TODO: name the agent harness you built it with. The README credits Hermes Agent; also mention Claude Code if you used it]\n\nThe summarizer is layered: Ollama, then llama-cpp, then a deterministic template. If no model is running, you still get a usable summary, so the tool never breaks because a model is down.\n\nPrivacy was a hard requirement:\n\nOnly file names and counts go to the model. Full diffs never leave the machine.\n\nDiscord only gets the summary and file paths, never code.\n\nEvery bot reply is ephemeral (only you can see it), and commands are restricted to an allowlist of Discord user IDs. If the list is empty, everyone is denied.\n\nWhy Does Open Innovation Matter?\n\nThis tool watches everything my agents do across all my repos. That is exactly the kind of data I don't want to stream to a third-party API.\n\nWith an open-weight model running locally through Ollama:\n\nMy code stays on my machine. Summaries are generated locally, and no prompt goes to an external service.\n\nIt works offline and costs nothing. There's no API key, no per-token billing and no rate limit, so I can log every session without thinking about cost.\n\nIt's swappable. phi today, any Ollama or GGUF model tomorrow, changed through one environment variable.\n\nIt's inspectable. I can see the exact prompt (file names only) and know nothing else is sent.\n\nA closed API would have forced a choice between useful summaries and keeping my code private. Open models removed that trade-off.", "url": "https://wpnews.pro/news/week3", "canonical_source": "https://dev.to/rathnams089/week3-47f5", "published_at": "2026-10-25 07:05:02+00:00", "updated_at": "2026-10-25 07:13:03.375548+00:00", "lang": "en", "topics": ["ai-agents", "ai-tools", "developer-tools", "ai-safety"], "entities": ["Agent Logger", "Ollama", "Discord", "llama-cpp-python", "SQLite", "Claude Code", "Hermes Agent", "Hacktoberfest"], "also_reported_by": [], "alternates": {"html": "https://wpnews.pro/news/week3", "markdown": "https://wpnews.pro/news/week3.md", "text": "https://wpnews.pro/news/week3.txt", "jsonld": "https://wpnews.pro/news/week3.jsonld"}}