{"id":13593600,"url":"https://github.com/smmr-software/mabel","last_synced_at":"2025-10-21T04:46:04.099Z","repository":{"id":37208426,"uuid":"392449625","full_name":"smmr-software/mabel","owner":"smmr-software","description":"A fancy BitTorrent client for the terminal","archived":false,"fork":false,"pushed_at":"2023-08-22T17:57:20.000Z","size":1000,"stargazers_count":427,"open_issues_count":5,"forks_count":12,"subscribers_count":5,"default_branch":"main","last_synced_at":"2025-03-14T02:03:58.752Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":"","language":"Go","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"gpl-3.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/smmr-software.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"COPYING","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null}},"created_at":"2021-08-03T20:38:55.000Z","updated_at":"2025-02-28T13:50:47.000Z","dependencies_parsed_at":"2024-01-07T09:45:15.294Z","dependency_job_id":null,"html_url":"https://github.com/smmr-software/mabel","commit_stats":{"total_commits":265,"total_committers":2,"mean_commits":132.5,"dds":0.1283018867924528,"last_synced_commit":"4b594b8adb589c466c1fad661016792ef07a1408"},"previous_names":[],"tags_count":8,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/smmr-software%2Fmabel","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/smmr-software%2Fmabel/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/smmr-software%2Fmabel/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/smmr-software%2Fmabel/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/smmr-software","download_url":"https://codeload.github.com/smmr-software/mabel/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":247986773,"owners_count":21028886,"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-08-01T16:01:22.050Z","updated_at":"2025-10-21T04:45:59.053Z","avatar_url":"https://github.com/smmr-software.png","language":"Go","funding_links":[],"categories":["Go","\u003ca name=\"torrent\"\u003e\u003c/a\u003eTorrent"],"sub_categories":[],"readme":"# Mabel\n\nDeriving its name from the Hebrew word \"מבול,\" meaning flood, deluge, or\n(loosely) torrent, Mabel is a fancy BitTorrent client for the terminal.\n\nMabel builds on the excellent work of others in the open source\ncommunity, including:\n\n- [charmbracelet/bubbletea]\n- [anacrolix/torrent]\n\n## Screenshots\n\n\u003cimg width=\"50%\" src=\"/default.png\" alt=\"Mabel downloading several torrents, default theme\"\u003e\n\u003cimg width=\"50%\" src=\"/desert.png\" alt=\"Mabel looking at torrent details, desert theme\"\u003e\n\n## Prerequisites\n\n- A [Nerd Font] installed and enabled in your terminal\n\n## Install\n\nComing soon to a package manager near you!\n\n```sh\n# Build from source\ngo install github.com/smmr-software/mabel@latest\n# Homebrew\nbrew install mabel\n```\n\n### Desktop File\n\nSome systems can install the desktop entry file to get Mabel to appear\nin the list of applications (and open torrent files with `xdg-open`):\n\n```sh\ncurl -sSL https://raw.githubusercontent.com/smmr-software/mabel/main/mabel.desktop -o ~/.local/share/applications/mabel.desktop\nupdate-desktop-database ~/.local/share/applications\n```\n\n## Usage\n\n```\nmabel [OPTIONS] [TORRENT]...\n```\n\nWhen run without any arguments, Mabel starts a full TUI client.\n\nWhen passed a single torrent (infohash, magnet link, `.torrent` file),\nMabel starts in \"mini\" mode.\n\nWhen multiple torrents are provided as arguments, Mabel opens the full\nTUI client with the corresponding torrents added.\n\n### mini\n\nThe mini client downloads a single torrent, displaying its name and\ndownload stats. Press `q` or `ctrl+c` to close the client.\n\n### full\n\nThe full client manages a list of torrents downloading in parallel.\n\nA brief breakdown of the controls:\n\n- Scroll through the list with `hjkl` or the arrow keys\n- Press `a` to add a torrent\n- Get more details about a torrent with `return`\n- Perhaps most importantly – press `?` to expand the help menu at the\n  bottom of the view\n\nOnce again, press `q` or `ctrl+c` to close the client.\n\n## Config and Flags\n\nMabel can be configured via a TOML file or via flags at runtime. Flags\ntake precedence over the config file.\n\n### Config File\n\nLocated at `$XDG_CONFIG_HOME/mabel/config.toml`. A basic example:\n```toml\n# The default torrent download directory.\n# Supports expansion of ~ characters\n# Default: $XDG_DOWNLOAD_DIR\ndownload = \"~/movies/buffer\"\n\n# The port to which the client will bind\n# Default: 42069\nport = 126\n\n# Toggle client logging (logs are written to $XDG_STATE_HOME/mabel)\nlog = false\n\n# Mabel always prefers encrypted connections. If set to true,\n# require_encryption will have Mabel ignore unencrypted peers.\nrequire_encryption = false\n```\n\n#### Theme\n\nThe `theme` key is special, as it can be one of two types.\n\nAs a string, `theme` selects one of our default themes. The currently\navailable themes are:\n- default\n- desert\n- purple\n- 8-bit/ansi\n\nAs a table [a.k.a (hash)map or dictionary], the `theme` key can also\nallow you to customize your colors in-depth. The `theme.base` key\nprovides a fallback for any unset values in the table, and follows the\nsame rules as the string `theme` key.\n\nThe `theme.gradient*` keys customize the gradients used in progress\nbars throughout Mabel. `gradient-solid` takes precedence over\n`gradient-start` and `gradient-end`. The latter two only work with\n24-bit color.\n\nSome examples:\n```toml\n# just the desert theme\ntheme = \"desert\"\n\n# default, with a red primary color\n[theme]\nbase = \"default\"\nprimary = \"#FF0000\"\n\n# the same as previous\n[theme]\nprimary = \"#FF0000\"\n\n# 8-bit, with a blue error color\n[theme]\nbase = \"8-bit\"\nerror = \"12\"\n\n# default, with a gradient from Pink Lightly Toasted to SMMR Software\n# Example Color 2 (https://colornames.org/color/990d35)\n[theme]\ngradient-start = \"#D52941\"\ngradient-end = \"#990D35\"\n\n# a completely custom theme where everything is green\n[theme]\nprimary = \"#00FF00\"\nlight = \"#00FF00\"\ndark = \"#00FF00\"\nerror = \"#00FF00\"\ntooltip = \"#00FF00\"\ngradient-solid = \"#00FF00\"\n```\n\n#### Keys\n\nThe `keys` key allows the user to configure their key bindings in both\nthe home and add torrent screen. To remap a specific key, use the key\n`keys.SCREEN.ACTION`. The property `key` selects the actual key being\nused ([with names and options defined by Bubble Tea]), `icon` defines\nthe icon in the help menu, and `desc` defines the help text in the help\nmenu.\n\nIn the home screen, options for key bindings include [up, down, next,\nprevious, add, delete, details, deselect, help, and quit]. In the add\ntorrent screen, you can configure the [quit, previous, and next keys].\n\nSome examples: \n```toml\n[keys]\n  # keys in the home screen\n  [keys.home]\n\n    # changes the next keybind to tab, with help menu info \"↹ next\"\n    [keys.home.next]\n      key = \"tab\"\n      icon = \"↹\"\n      desc = \"next\"\n\n    # changes the help keybind to b, keeping the icon as default but\n    # the description as \"sos\"\n    [keys.home.help]\n      key = \"b\"\n      desc = \"sos\"\n  \n  # keys in the add torrent screen\n  [keys.add-torrent]\n\n    # just changes the quit keybind to return\n    [keys.add-torrent.quit]\n      key = \"return\"\n```\n\n### Flags\n\nRuntime flags are documented in Mabel's help message, which you can\nview by passing `-h` on invocation. Flags encompass all the options\nconfigurable in the TOML config, plus help and version information\nmessages.\n\n## License\n\n[GPLv3](COPYING).\n\n***\n\nA [SMMR Software] creation. 🏖\n\n[charmbracelet/bubbletea]: https://github.com/charmbracelet/bubbletea\n[anacrolix/torrent]: https://github.com/anacrolix/torrent\n[Nerd Font]: https://www.nerdfonts.com\n[SMMR Software]: https://smmr.software/\n[with names and options defined by Bubble Tea]: https://github.com/charmbracelet/bubbletea/blob/master/key.go\n[up, down, next, previous, add, delete, details, deselect, help, and quit]: https://github.com/smmr-software/mabel/blob/45d822acf103368b544e64309ff33bceeab5372a/full/keys.go#L54-L95\n[quit, previous, and next keys]: https://github.com/smmr-software/mabel/blob/45d822acf103368b544e64309ff33bceeab5372a/full/keys.go#L119-L132\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fsmmr-software%2Fmabel","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fsmmr-software%2Fmabel","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fsmmr-software%2Fmabel/lists"}