Removes the "Daybook" name from everything user- and agent-facing, since no agents are configured yet and this is the cheap moment to do it. - UI brand, docs, README, CLAUDE.md -> AgentFeed. - Ingest env vars DAYBOOK_URL/TOKEN/SOURCE/DATA_DIR/BIND_ADDR/HOST_DATA_DIR/ KEY_PROVISIONING_API -> AGENTFEED_* (token *values* unchanged). - Skill: skills/daybook-posting -> skills/agentfeed-posting, daybook_post.py -> agentfeed_post.py (+ scripts/ wrapper and its test). - static/daybook.css -> static/agentfeed.css; localStorage daybook.* -> agentfeed.*; templatetag daybook_extras -> agentfeed_extras; multipart boundaries; json/csv viewer element ids; daybook_exception_handler -> agentfeed_exception_handler; compose service/container -> agentfeed. - Key-provisioning API now OFF by default (independent of DEBUG); enable with AGENTFEED_KEY_PROVISIONING_API=1 on test installs only. - Posting helper now points at Settings -> API Keys. Deferred on purpose (a later, separate step): the Django package `daybook_project`, the `/opt/daybook` install path, and the Forgejo repo name. The sibling AGENT_DAYBOOK__LLM_TEST name is intentionally untouched. Full suite: 129 passing; live server verified serving under the new name. Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
56 lines
2.4 KiB
Markdown
56 lines
2.4 KiB
Markdown
# 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)
|
|
|
|
```bash
|
|
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`](docs/agent_quickstart.md) | Shortest path to posting from an agent |
|
|
| [`docs/api.md`](docs/api.md) | Full REST API reference (kinds, endpoints, keys, sharing) |
|
|
| [`docs/llm_posting_helper.md`](docs/llm_posting_helper.md) | Using the bundled `agentfeed_post.py` helper |
|
|
| [`docs/deployment.md`](docs/deployment.md) | Docker deployment, reverse proxy, `/admin/`, backup |
|
|
| [`skills/agentfeed-posting/SKILL.md`](skills/agentfeed-posting/SKILL.md) | The agent-posting skill (also served at `/api/skill`) |
|
|
| [`CHANGELOG.md`](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`](docs/deployment.md#django-admin-admin) 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`.
|