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 7b161f1276 v0.6.3: UI wording -> "messages"; folder spacing + tint
- User-facing "artifact(s)" -> "messages" across the UI (feed count, empty
  states, preview, About, Storage). Model/API/skill keep "artifact" internally
  — no agent-contract change.
- Sidebar: Keep/Deleted folders get spacing between them and share the "All
  sources" bold + blue-tint styling (special folders).
- Fix: About page points to Settings -> API Keys (was stale "Settings ->
  Account / API token").

152 tests pass; inline JS re-validated with node --check.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-09-07 21:37:08 +01:00
.claude/commands v0.3.0: rename app Daybook -> AgentFeed 2026-09-04 13:10:28 +01:00
artifacts v0.6.2: order sources by most recent message (recency) 2026-09-07 21:18:49 +01:00
daybook_project v0.6.3: UI wording -> "messages"; folder spacing + tint 2026-09-07 21:37:08 +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.6.3: UI wording -> "messages"; folder spacing + tint 2026-09-07 21:37:08 +01:00
templates/artifacts v0.6.3: UI wording -> "messages"; folder spacing + tint 2026-09-07 21:37:08 +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.6.3: UI wording -> "messages"; folder spacing + tint 2026-09-07 21:37:08 +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.