{"id":15663788,"url":"https://github.com/halcy/tootmage","last_synced_at":"2025-10-12T13:11:05.302Z","repository":{"id":66710789,"uuid":"111829514","full_name":"halcy/tootmage","owner":"halcy","description":"multicolumn terminal mastodon client for shitty nerds","archived":false,"fork":false,"pushed_at":"2025-03-05T09:29:23.000Z","size":382,"stargazers_count":23,"open_issues_count":1,"forks_count":2,"subscribers_count":2,"default_branch":"master","last_synced_at":"2025-03-31T01:41:58.798Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/halcy.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","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,"zenodo":null}},"created_at":"2017-11-23T16:15:04.000Z","updated_at":"2025-03-20T09:22:31.000Z","dependencies_parsed_at":null,"dependency_job_id":"ef9a120d-8beb-4027-9075-d40e3fa3b08b","html_url":"https://github.com/halcy/tootmage","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/halcy%2Ftootmage","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/halcy%2Ftootmage/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/halcy%2Ftootmage/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/halcy%2Ftootmage/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/halcy","download_url":"https://codeload.github.com/halcy/tootmage/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":252747820,"owners_count":21798206,"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-03T13:39:53.682Z","updated_at":"2025-10-12T13:11:05.167Z","avatar_url":"https://github.com/halcy.png","language":"Python","funding_links":[],"categories":[],"sub_categories":[],"readme":"# tootmage\nmulticolumn terminal mastodon client for shitty nerds.\n\ncurrently in an extremely alpha here-be-dragons state. code contributions, suggestions, issues and such now welcome.\n\nsetup.py forthcoming At Some Point (write me one, please!). Needs prompt-toolkit, mastodon.py from github (1.2.0 will work badly, 1.2.1 will be fine when I getaround to releasing it) and possibly a bunch of other stuff.\n\ntermwrap is an improved version of ansiwrap (https://github.com/jonathaneunice/ansiwrap) that works with unicode.\n\nsetup:\n* you will be prompted for login stuff on first run\n* DO NOT SHARE THE CONTENTS OF THE .secret FILES WITH ANYONE\n* you can change various things in settings.py. looking at it is recommended\n* by default, notification via notify-send and aplay is attempted - turn that off if you don't need / want it (boop sound graciously provided by @jk@mastodon.social)\n* there are currently two themes - one that uses RGB colours and unicode (\"datawitch\"), one that uses none of that (\"helvetica standard\").\n\nbasic operation:\n* You can change the active column using either control+pageup/down or alt+arrowup/down\n* You can scroll the active column with pageup/down\n* Enter commands to do stuff - basic line editing and history are available.\n* The commands available are essentially all the functions in Mastodon.py (Compare [http://mastodonpy.readthedocs.io/en/latest/](http://mastodonpy.readthedocs.io/en/latest/)), plus some extra, documented below.\n* Commands are autocompleted either when you hit tab, or when they are executed (hit enter). You can enter commands in shortened form, i.e. enter s-p instead of status_post, or just \"r\" for \"status_reply\". Use tab autompletion to discover many more shortcuts.\n* You can autocomplete usernames by entering the start of the username (starting with an @) and pressing tab.\n* You can refer to entries in columns while typing your command by entering \".columnnumber.resultnumber\". You can refer to the entries of the active column using \"#resultnumber\"\n* To view a toot, enter \".columnnumber.resultnumber\" or #resultnumber\" with no further commands - this also expands CWs.\n* You can actually straight up enter python commands - prefix them with ;\n* If the full version of the entered command starts with \"status\", the first \".\" in the first toot parameter is optional\n\nadditional commands:\n* \"toot text\" (short t): posts a toot. text is automatically quoted (quotes are escaped)\n* \"status_boost toot\" (short b): synonym for status_reblog\n* \"status_reply toot text\" (short r): does magic to automatically prepend the correct mentions to your post and maintain CWs and such. Also auto-quotes.\n* \"status_view toot number\": (short v): runs a function (specified in the settings) with the url of the toot as parameter. optionally pass a number as the second parameter to view a numbered url in a toot. the default settings just open firefox, but you could also e.g. make the command put the URL in a HTML file that you can then look at in your browser\n* \"status_expand toot\" (short x): expands a conversation\n* \"quit\": does that\n\nthings that are bad still and/or known bugs\n* visibility is not retained in replies\n* can't scroll horizontally yet - hope your screen is wide enough (overflow gets cut off on the right)\n* currently no easy way to specify CW, visibility, attach media - have to use the full status_post command to do it\n* everything is a bit user-unfriendly, error output is terrible\n* documentation is bad\n* resizing temporarily breaks screen\n\nscreenshots:\n![datawitch](https://raw.githubusercontent.com/halcy/tootmage/master/datawitch.png)\n![helvetica standard](https://raw.githubusercontent.com/halcy/tootmage/master/helvetica_standard.png)\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fhalcy%2Ftootmage","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fhalcy%2Ftootmage","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fhalcy%2Ftootmage/lists"}