FreshRSS has three primary viewing modes: Normal, Global, and Reader view.
Normal view will allow you to view articles in a compressed view. They can be separated by category or individual feed, or viewed in the "main stream" containing all feeds. Clicking a feed in the sidebar (mobile users will need to click the folder icon to open it) will open that feed’s view.
By default, the normal view includes six items per article. From left to right:
Clicking the gear icon next to an individual feed will display additional options for that feed.
Global view allows quick views of feed’s statuses at once. Feeds and categories are shown with the number of unread articles next to them. Clicking a feed’s name will open it in a view similar to normal view.
Reader view will display a feed will all articles already open for reading. Feeds can be switched by clicking the folder icon at the top to bring up the category/feed sidebar.
To take full advantage of FreshRSS, it needs to retrieve new items from the feeds you have subscribed to. There are several ways to do this.
This is the recommended method since you can forget about it once it is configured.
This method is only available if you have access to the scheduled tasks of the machine on which your FreshRSS instance is installed.
The script is named actualize_script.php and is located in the app folder. The scheduled task syntax will not be explained here. However, here is a quick introduction to crontab that might help you.
Here is an example to trigger article update every hour.
0 * * * * php /path/to/FreshRSS/app/actualize_script.php > /tmp/FreshRSS.log 2>&1
Special parameters to configure the script - all parameters can be combined:
Parameter "force" https://freshrss.example.net/i/?c=feed&a=actualize&force=1 If force is set to 1 all feeds will be refreshed at once.
Parameter "ajax" https://freshrss.example.net/i/?c=feed&a=actualize&ajax=1 Only a status site is returned and not a complete website. Example: "OK"
Parameter "maxFeeds" https://freshrss.example.net/i/?c=feed&a=actualize&maxFeeds=30 If maxFeeds is set the configured amount of feeds is refreshed at once. The default setting is "10".
Parameter "token" https://freshrss.example.net/i/?c=feed&a=actualize&token=542345872345734 Security parameter to prevent unauthorized refreshes. For detailed Documentation see "Form authentication".
If you do not have access to the installation server scheduled task, you can still automate the update process.
To do so, you need to create a scheduled task, which need to call a specific URL: https://freshrss.example.net/i/?c=feed&a=actualize (it could be different depending on your installation). Depending on your application authentication method, you need to adapt the scheduled task.
This is the most straightforward since you have a public instance; there is nothing special to configure:
0 * * * * curl 'https://freshrss.example.net/i/?c=feed&a=actualize'
If you configure the application to allow anonymous reading, you can also allow anonymous users to update feeds (“Allow anonymous refresh of the articles”).
The URL used in the previous section will now become accessible to anyone. Therefore you can use the same syntax for the scheduled task.
You can also configure an authentication token to grant special access on the server.
The scheduled task syntax should look as follows:
0 * * * * curl 'https://freshrss.example.net/i/?c=feed&a=actualize&token=my-token'
You can also target a different user by adding their username to the query string, with &user=insert-username:
0 * * * * curl 'https://freshrss.example.net/i/?c=feed&a=actualize&user=someone&token=my-token'
When using HTTP authentication, the syntax in the two previous sections is unusable. You’ll need to provide your credentials to the scheduled task. Note that this method is highly discouraged since it means that your credentials will be in plain sight!
0 * * * * curl -u alice:password123 'https://freshrss.example.net/i/?c=feed&a=actualize'
If you can’t or don’t want to use the automatic method, you can update manually. There are two methods for updating all or some of the feeds.
This update occurs on all feeds. To trigger it, simply click on the update link in the navigation menu.
When the update starts, a progress bar appears and changes while feeds are processed.
This update occurs on the selected feed only. To trigger it, simply click on the update link in the feed menu.
When the number of articles stored by FreshRSS inevitably grows larger, it’s important to use efficient filters to display only a subset of the articles. There are several methods that filter with different criteria. Usually those methods can be combined.
This is the easiest method. You only need to click on the category title in the side panel. There are two special categories at the top of the panel:
There are several methods to filter articles by feed:
Each article has two attributes that can be combined. The first attribute indicates whether or not the article has been read. The second attribute indicates if the article was marked as favorite or not.
In version 0.7, attribute filters are available in the article display dropdown list. With this version, it’s not possible to combine filters. For instance, it’s not possible to display only read and favorite articles.
Starting with version 0.8, all attribute filters are visible as toggle icons. They can be combined. As any combination is possible, some have the same result. For instance, the result for all filters selected is the same as no filter selected.
By default, this filter displays only unread articles
It is possible to filter articles by their content by inputting a string in the search field.
You can use the search field to further refine results:
f:123 or multiple feed IDs (or): f:123,234,345author:name or author:'composed name'intitle:keyword or intitle:'composed keyword'inurl:keyword or inurl:'composed keyword'#tag or #tag+with+whitespacekeyword or 'composed keyword'date:<date-interval>
date:2014-03-30date:2014-03 or date:201403date:2014date:2014-05-30T13date:2014-05-30T13:30date:2014-02/2014-04date:2014-02--2014-04date:2014-02/04date:2014-02-03/05date:2014-02-03T22:00/22:15date:2014-02-03T22:00/15date:2014-03/date:/2014-03date:2014-03/P1Wdate:P1W/2014-05-25T23:59:59date:P1Y/ or date:P1Y (past year)date:P2M/ (past two months)date:P3W/ (past three weeks)date:P4D/ (past four days)date:PT5H/ (past five hours)date:PT30M/ (past thirty minutes)date:PT90S/ (past ninety seconds)date:P1DT1H/ (past one day and one hour)pubdate:<date-interval>L:12 or multiple label IDs: L:12,13,14 or with any label: L:*label:label, label:"my label" or any label name from a list (or): labels:"my label,my other label"label:"my label" label:"my other label"e:1639310674957894 or multiple entry IDs (or): e:1639310674957894,1639310674957893Be careful not to enter a space between the operator and the search value.
Some operators can be used negatively, to exclude articles, with the same syntax as above, but prefixed by a ! or -:
!f:234, -author:name, -intitle:keyword, -inurl:keyword, -#tag, !keyword, !date:2019, !date:P1W, !pubdate:P3d/.
It is also possible to combine keywords to create a more precise filter.
For example, you can enter multiple instances of f:, author:, intitle:, inurl:, #, and free-text.
Combining several search criteria implies a logical and, but the keyword OR
can be used to combine several search criteria with a logical or instead: author:Dupont OR author:Dupond
When combining multiple negative operators (e.g. !intitle:'thing1' AND !intitle:'thing2'), you’ll need to consider De Morgan’s laws. See this GitHub comment for more details on the usage of AND vs OR when using combining multiple negative operators.
You can change the sort order by clicking the toggle button available in the header.
Once you came up with your perfect filter, it would be a shame if you need to recreate it every time you need to use it.
Hopefully, there is a way to bookmark them for later use. We call them user queries. You can create as many as you want, the only limit is how they will be displayed on your screen.
Display the user queries drop-down by clicking the button next to the state buttons.

Then click on the bookmark action.
Congratulations, you’re done!
Display the user queries drop-down by clicking the button next to the state buttons.

Then click on the bookmarked query, the previously stored query will be applied.
Note that only the query is stored, not the articles. The results you are seeing now could be different from the results on the day you've created the query.