https://github.com/prplecake/gof
a command-line utility to post RSS/Atom feeds to the fediverse.
https://github.com/prplecake/gof
fediverse go golang mastodon rss
Last synced: 4 months ago
JSON representation
a command-line utility to post RSS/Atom feeds to the fediverse.
- Host: GitHub
- URL: https://github.com/prplecake/gof
- Owner: prplecake
- License: agpl-3.0
- Created: 2022-01-06T18:15:42.000Z (over 4 years ago)
- Default Branch: master
- Last Pushed: 2025-12-16T03:53:37.000Z (6 months ago)
- Last Synced: 2026-01-29T00:52:53.705Z (5 months ago)
- Topics: fediverse, go, golang, mastodon, rss
- Language: Go
- Homepage:
- Size: 173 KB
- Stars: 8
- Watchers: 1
- Forks: 2
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- Funding: .github/FUNDING.yml
- License: LICENSE
- Codeowners: .github/CODEOWNERS
Awesome Lists containing this project
README
[](https://github.com/prplecake/gof/actions/workflows/go.yml)
[](https://github.com/prplecake/gof/releases/latest)
# gof
gof is a command-line utility to post RSS/Atom feeds to the fediverse.
Confirmed working with:
* Mastodon and forks such as,
* glitch-soc
* hometown
* Pleroma
gof is for "go feediverse", "go fediverse", "go fedi", or really
whatever you want. gof started as a port of [feediverse][feediverse],
written in Go.
gof supports multiple feeds and multiple accounts.
[feediverse]: https://github.com/edsu/feediverse
## requirements
* Go 1.21
## installation
Download the latest release for your system from the
[Releases page](https://github.com/prplecake/gof/releases/latest).
### from source
Clone the repo and build the thing:
```shell
git clone https://github.com/prplecake/gof
cd gof && go build
```
## usage
Before you can start using gof, you'll need to configure it. An example
configuration can be found [here][config-blob]. You can also just copy
the example:
```shell
cp gof.example.yaml gof.yaml
vim gof.yaml # don't forget to edit it!
```
You'll need an access token as well. On Mastodon you can get some from
your settings page, and for others without a PAT UI, you can get on from
the [Fediverse Instance Access Token Generator][fediverse-access-token].
[fediverse-access-token]:https://tools.splat.soy/pleroma-access-token/
Then you can use it:
```shell
./gof
```
You could also specify the configuration file to use via the command
line:
```shell
./gof -c /path/to/your/gof.yaml
```
This would allow you to place the executable (and configuration)
anywhere on your system. Once gof is configured, you might want to add
it to your crontab, or your other favorite task scheduler:
```text
*/30 * * * * cd /path/to/$REPO; gof
```
[config-blob]:https://github.com/prplecake/gof/blob/master/gof.example.yaml
## post format
You can specify how the message looks. The variables you have to work
with are `URL`, `Title`, and `Summary`. You don't have to use all
variables.
An example template:
```yaml
template: '{{.Title}}: {{.URL}}'
```
If you want the message to include line breaks, use YAML's multiline
syntax:
```yaml
template: |-
{{.Title}}
{{.URL}}
```
### Instances supporting formatted posts
Formatted posts are also supported. You can choose from plaintext,
Markdown, HTML, or BBCode, as long as they’re supported by your
instance. Here's an example with Markdown:
```yaml
template: |-
**{{.Title}}**
> {{.Summary}}
{{.URL}}
format: markdown
```