Skip to content

feat(tags) Add minimal tag management to miniflux#4289

Open
pettijohn wants to merge 3 commits into
miniflux:mainfrom
pettijohn:main
Open

feat(tags) Add minimal tag management to miniflux#4289
pettijohn wants to merge 3 commits into
miniflux:mainfrom
pettijohn:main

Conversation

@pettijohn

Copy link
Copy Markdown

Have you followed these guidelines?

  • I have tested my changes - with unit tests and auto make run to verify that /tags and /categories work
  • There are no breaking changes
  • I have thoroughly tested my changes and verified there are no regressions
  • My commit messages follow the Conventional Commits specification
  • I have read and understood the contribution guidelines

This pull request allows mutating entry tags through the API (currently only title & content may be mutated) and viewing them from /tags (refactored /categories to a shared item_list control).

About 2.5 years ago I submitted feature request #2245 for adding upvote/downvote buttons to train AI on news that I care (or do not care) about. I understand that you closed it because it does not fit with the philosophy of miniflux. The idea of this PR is that an external service or reader client or greasmonkey script can interact with miniflux, saving metadata as tags. This keeps miniflux as a central feed repository, and any AI/LLM client has a way to interact with the storage model. No changes to the database, so no migrations required. No bloat of miniflux features.

Code Summary

This PR adds tag management support in two places:

  • Extends PUT /v1/entries/{entryID} so API clients can replace an entry’s tags with an optional tags field.
  • Adds a hidden /tags UI page that lists all tags, reusing the category list layout and supporting tag-specific “mark all as read” actions.

Details

The API update keeps existing title/content behavior intact while allowing:

  • omitted tags: leave tags unchanged
  • "tags": []: clear tags
  • "tags": ["foo", "bar"]: replace tags

The UI update adds a read-only tag listing page at /tags, with entry counts, unread counts, links to each tag’s entries, and localized labels. It does not add a top-level navigation item.

pettijohn added 2 commits May 4, 2026 22:23
Extend PUT /v1/entries/{entryID} to accept an optional tags field
that replaces the entry tag list. Preserve existing title/content update
behavior and allow an empty tag list to clear tags.

Update the Go client request type and API examples.
Add a hidden /tags page that lists all tags with entry and unread counts.
Reuse the category list item template for categories and tags, and add a
tag-specific mark-all-as-read action.
Add AI translations for new keys, alert.no_tag and page.tags.title.
@pettijohn pettijohn changed the title Add minimal tag management to miniflux (feat) Add minimal tag management to miniflux May 4, 2026
@pettijohn pettijohn changed the title (feat) Add minimal tag management to miniflux feat(tags) Add minimal tag management to miniflux May 4, 2026
@akuzia

akuzia commented Jun 10, 2026

Copy link
Copy Markdown

Making search work with tags via api (v1/entries) will be great.
Like tags:foo for posts with foo and tags:!foo posts with no foo tag or dedicated prop tags.include/tags.exclude or smth along those lines.

I know about opionated nature of this project, but having tags and not using them in api is strange.
We already have frontend /tags/%tag%/entries/

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Development

Successfully merging this pull request may close these issues.

2 participants