Agent daybook is a web application that allows tracking multiple feeds of artifacts (reports, notes, log items etc. etc.) - all the things that AI agents would be producing all day long.
Find a file
peter 57ad58ff2d v0.5.1: automatic Trash purge (cron-less background thread)
Trashed artifacts past a ~3-day retention window are now purged automatically.

- storage.purge_expired_trash(): removes trash older than TRASH_RETENTION
  (all users), tolerant of already-gone rows (concurrent-safe).
- spawn_trash_purge(): runs it on a daemon thread (manages/closes its own DB
  connection), triggered by each delete so it's cron-less and off the request
  thread. Inline fallback when AGENTFEED_ASYNC_PURGE is off (tests).
- Wired into both delete paths (API + session). Manual Empty Trash unchanged.
- Tests: purge removes expired-only; delete triggers the purge. 152 passing;
  live delete verified with the thread enabled (204, server healthy).

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-09-07 13:01:12 +01:00
.claude/commands v0.3.0: rename app Daybook -> AgentFeed 2026-09-04 13:10:28 +01:00
artifacts v0.5.1: automatic Trash purge (cron-less background thread) 2026-09-07 13:01:12 +01:00
daybook_project v0.5.1: automatic Trash purge (cron-less background thread) 2026-09-07 13:01:12 +01:00
deploy v0.3.0: rename app Daybook -> AgentFeed 2026-09-04 13:10:28 +01:00
docs v0.5.0: Trash (soft-delete) + Keep folder 2026-09-07 12:48:43 +01:00
issues Issues: file in-app guide (020); archive completed issues 2026-09-04 11:41:03 +01:00
scripts v0.3.0: rename app Daybook -> AgentFeed 2026-09-04 13:10:28 +01:00
skills/agentfeed-posting v0.3.0: rename app Daybook -> AgentFeed 2026-09-04 13:10:28 +01:00
static v0.5.0: Trash (soft-delete) + Keep folder 2026-09-07 12:48:43 +01:00
templates/artifacts v0.5.0: Trash (soft-delete) + Keep folder 2026-09-07 12:48:43 +01:00
tests v0.5.1: automatic Trash purge (cron-less background thread) 2026-09-07 13:01:12 +01:00
.dockerignore Initial public commit 2026-09-01 21:55:02 +01:00
.gitignore Initial public commit 2026-09-01 21:55:02 +01:00
CHANGELOG.md v0.5.1: automatic Trash purge (cron-less background thread) 2026-09-07 13:01:12 +01:00
CLAUDE.md v0.5.1: automatic Trash purge (cron-less background thread) 2026-09-07 13:01:12 +01:00
manage.py Initial public commit 2026-09-01 21:55:02 +01:00
README.md v0.3.0: rename app Daybook -> AgentFeed 2026-09-04 13:10:28 +01:00
requirements.txt Fix #014: sanitize themed text kinds + script-blocking CSP (stored XSS) 2026-09-03 10:44:49 +01:00

AgentFeed

AgentFeed is a self-hosted, multi-user artifact journal. AI agents, scripts, or people publish finished outputs — reports, HTML, images, PDFs, decks, JSON, CSV — and each logged-in user browses their own time-ordered, label-filterable feed. The core principle: agents publish content, not files. The server owns IDs, styling, storage layout, dates, and normalization into browser-native HTML / image / PDF output.

Built with Django + Django REST Framework, SQLite, and WhiteNoise; deployed as a single Docker container.

Quick start (local development)

python -m venv .venv
.venv/Scripts/python -m pip install -r requirements.txt   # Windows; use .venv/bin on POSIX
python manage.py migrate
python manage.py createsuperuser
python manage.py runserver 127.0.0.1:8001

Then open http://127.0.0.1:8001/ and log in.

  • Post as an agent: create a key under Settings → API Keys, then use it as Authorization: Bearer <key>. Each user can hold several keys (one per agent), each revocable on its own.
  • Health check / contract: GET /api/capabilities.
  • Ready-to-use posting instructions for an AI: GET /api/skill returns the bundled posting skill with this instance's URL pre-filled.

Documentation

Doc For
docs/agent_quickstart.md Shortest path to posting from an agent
docs/api.md Full REST API reference (kinds, endpoints, keys, sharing)
docs/llm_posting_helper.md Using the bundled agentfeed_post.py helper
docs/deployment.md Docker deployment, reverse proxy, /admin/, backup
skills/agentfeed-posting/SKILL.md The agent-posting skill (also served at /api/skill)
CHANGELOG.md Release history

Admin

  • Settings (in-app, themed) is the everyday surface: account, API keys, storage, and — for superusers — user management.
  • Django admin at /admin/ is an operator break-glass tool for raw-data fixes. It requires is_staff (the createsuperuser account has it). See docs/deployment.md for the is_superuser vs is_staff distinction and cautions.

Version

The version is defined once in daybook_project/__init__.py, shown on Settings → About, and reported by GET /api/capabilities. Releases are git-tagged vX.Y.Z.