{"id":15859137,"url":"https://github.com/liamg/happen","last_synced_at":"2025-03-15T23:30:53.860Z","repository":{"id":173289453,"uuid":"650305544","full_name":"liamg/happen","owner":"liamg","description":null,"archived":false,"fork":false,"pushed_at":"2023-10-11T23:29:15.000Z","size":176,"stargazers_count":5,"open_issues_count":1,"forks_count":0,"subscribers_count":2,"default_branch":"main","last_synced_at":"2025-02-27T04:24:54.020Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":"Go","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/liamg.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2023-06-06T19:37:30.000Z","updated_at":"2023-10-17T04:13:39.000Z","dependencies_parsed_at":"2024-10-27T04:00:49.459Z","dependency_job_id":"beb92a1d-6c89-43c9-9bf4-cc21ac0a9606","html_url":"https://github.com/liamg/happen","commit_stats":{"total_commits":8,"total_committers":3,"mean_commits":"2.6666666666666665","dds":0.25,"last_synced_commit":"05e49bcb4258c60d31f6e8a9853bd8c248038f06"},"previous_names":["liamg/happen"],"tags_count":1,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/liamg%2Fhappen","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/liamg%2Fhappen/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/liamg%2Fhappen/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/liamg%2Fhappen/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/liamg","download_url":"https://codeload.github.com/liamg/happen/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":243801610,"owners_count":20350106,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":[],"created_at":"2024-10-05T21:04:22.353Z","updated_at":"2025-03-15T23:30:53.854Z","avatar_url":"https://github.com/liamg.png","language":"Go","funding_links":[],"categories":[],"sub_categories":[],"readme":"# happen\n\nA hacked together terminal-based feed reader, created for my own use. Designed to tick away in a window and surface recent items of interest in a chat-like view.\n\nConfigure desired feeds in the config file at `~/.config/happen.yaml` (will be created with default settings after running once.)\n\n![screenshot](screenshot.png)\n\n## Installation\n\nInstall with go:\n\n```bash\ngo install github.com/liamg/happen@latest\n```\n\n## Key Bindings\n\n| Key                     | Description |\n| ----------------------- | ----------- |\n| `up`/`k`                | Move selection up |\n| `down`/`j`              | Move selection down |\n| `pageup`                | Page selection up |\n| `pagedown`              | Page selection down |\n| `home`/`g`/`0`          | Move up to oldest item  |\n| `end`/`G`/`$`           | Move down to newest item  |\n| `esc`                   | Clear selection |\n| `enter`                 | Open selected item in default browser |\n| `i`                     | Open image for selected item (if it has one) |\n| `/`                     | Filter/search items. Use `enter` to confirm and escape to `cancel/clear` |\n| `r`                     | Refresh feeds |\n| `q`                     | Exit |\n\n## Config File\n\n```yaml\nshowDescriptions: true # show a description/content preview under each item\nshowHelp: true # show the help strip at the bottom of the window, showing shortcuts + time to next update\nmaxBadgeSize: 16 # max length of badge names\npollInterval: 1m # how often to poll - can use h/m/s\nsubreddits: # list of subreddits to add to the feed\n  - blueteamsec\n  - cloudsecurity\n  - blackhat\n  - cyber\n  - cybersecurity\n  - exploitdev\n  - malware\n  - redteamsec\n  - pwned\nsources: # list of generic feed sources - all parameters are optional except url\n    - name: BBC\n      url: https://feeds.bbci.co.uk/news/world/rss.xml\n      bg: '#930000' # badge background colour\n      fg: '#e4e6e9' # badge foreground colour\n      maxAge: 4h # oldest items to display from the feed\n    - name: Hacker News\n      url: https://hnrss.org/newest?points=20\n      bg: '#cc5200'\n      fg: '#e4e6e9'\n      maxAge: 8h\n    - name: lobste.rs\n      url: https://lobste.rs/rss\n      bg: '#5e0000'\n      fg: '#ffffff'\n      maxAge: 24h\n```\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fliamg%2Fhappen","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fliamg%2Fhappen","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fliamg%2Fhappen/lists"}