{"id":24585765,"url":"https://github.com/nugget/fishpaste","last_synced_at":"2026-05-18T02:35:56.149Z","repository":{"id":57645628,"uuid":"269461416","full_name":"nugget/fishpaste","owner":"nugget","description":"Filter to sanitize Fish shell console clipboard buffer for pasting","archived":false,"fork":false,"pushed_at":"2020-12-10T17:54:59.000Z","size":224,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"master","last_synced_at":"2025-07-27T00:31:10.041Z","etag":null,"topics":["clipboard","filter","fish-shell","shell"],"latest_commit_sha":null,"homepage":"","language":"Go","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"bsd-2-clause","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/nugget.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}},"created_at":"2020-06-04T20:43:56.000Z","updated_at":"2020-12-10T17:55:01.000Z","dependencies_parsed_at":"2022-09-26T20:21:26.382Z","dependency_job_id":null,"html_url":"https://github.com/nugget/fishpaste","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/nugget/fishpaste","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/nugget%2Ffishpaste","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/nugget%2Ffishpaste/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/nugget%2Ffishpaste/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/nugget%2Ffishpaste/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/nugget","download_url":"https://codeload.github.com/nugget/fishpaste/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/nugget%2Ffishpaste/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":33162686,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-05-17T22:39:12.733Z","status":"online","status_checked_at":"2026-05-18T02:00:06.436Z","response_time":71,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"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":["clipboard","filter","fish-shell","shell"],"created_at":"2025-01-24T05:14:42.255Z","updated_at":"2026-05-18T02:35:56.132Z","avatar_url":"https://github.com/nugget.png","language":"Go","funding_links":[],"categories":[],"sub_categories":[],"readme":"[![Go](https://github.com/nugget/fishpaste/workflows/Go/badge.svg)](https://github.com/nugget/fishpaste/actions?query=workflow%3AGo) [![Go Report Card](https://goreportcard.com/badge/github.com/nugget/fishpaste)](https://goreportcard.com/report/github.com/nugget/fishpaste)\n\n# Fish Paste filter\n\nThis is a little tool I use to make it easier to paste terminal session\nsnippets into other apps like Slack or IRC.  It's tailored to take a clipboard\nbuffer from one of my terminal sessions and cleaning up all the fancy Fish\nshell prompt data so that the resultant paste is easier to read.\n\nI hook it up to an [Alfred] workflow so that I just have to hit Shift-Command-V\nand the pastebuffer will be filtered through the app automatically.\n\nCurrently the filtering is 100% specific to my shell configuration and isn't\nlikely to work for anyone else.  In theory this could be extended into a more\ngeneral-purpose filter that would be more universally useful.\n\nFor now, though, it scratches my itch.\n\n## How I use this tool \n\nMy Fish setup has a fancy left prompt that uses a lot of goofy unicode\ncharacters paired with a right prompt that includes timestamps and command\nruntime information.  It's great for interactive use, but it is a real pain\nwhenever I want to cut and paste a piece of my work onto Slack or a Reddit post\nor something like that.\n\nTaking terminal output like this:\n\n![Screenshot of Terminal](images/terminal.png)\n\nWithout any processing, pasting the text into Slack isn't the greatest experience:\n\n```console\nLast login: Thu Jun  4 16:05:36 on ttys003\n                             _          _\n                            | | ___   _| |__   ___\n                            | |/ / | | | '_ \\ / _ \\\n                            |   \u003c| |_| | |_) | (_) |\n                            |_|\\_\\\\__,_|_.__/ \\___/\n                              kubo.nuggethaus.net\n\nYou have new mail.\nDarwin kubo.local 19.5.0 x86_64\n16:06  up 19:18, 6 users, load averages: 1.62 1.53 1.60\n I  ⎈ docker-desktop  ~  kubectx production                          16:06:27\nSwitched to context \"production\".\n I  ⎈ production  ~  sleep 4                                 105ms  16:06:31\n I  ⎈ production  ~  ls -la | wc -l                         4003ms  16:06:40\n      81\n I  ⎈ production  ~ \n```\n\nUsing the Fish Paste filter, though, it's much nicer:\n\n```console\nLast login: Thu Jun  4 16:05:36 on ttys003\n                             _          _\n                            | | ___   _| |__   ___\n                            | |/ / | | | '_ \\ / _ \\\n                            |   \u003c| |_| | |_) | (_) |\n                            |_|\\_\\\\__,_|_.__/ \\___/\n                              kubo.nuggethaus.net\n\nYou have new mail.\nDarwin kubo.local 19.5.0 x86_64\n16:06  up 19:18, 6 users, load averages: 1.62 1.53 1.60\n$ kubectx production\nSwitched to context \"production\".\n$ sleep 4\n$ ls -la | wc -l\n      81\n$\n```\n\n## Manual Operation\n\nIn macOS this can be used directly without Alfred.  It simply expects the\nclipboard data to arrive on stdin and then emits the sanitized text to stdout.\nYou can run it like this as well:\n\n`pbpaste | fishpaste | pbcopy`\n\n[Alfred]: https://alfredapp.com/\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fnugget%2Ffishpaste","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fnugget%2Ffishpaste","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fnugget%2Ffishpaste/lists"}