{"id":20981431,"url":"https://github.com/nobe4/sling.sh","last_synced_at":"2026-04-18T12:02:46.950Z","repository":{"id":210879604,"uuid":"727649162","full_name":"nobe4/sling.sh","owner":"nobe4","description":"Simple launcher.","archived":false,"fork":false,"pushed_at":"2024-03-13T12:47:28.000Z","size":8,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":2,"default_branch":"main","last_synced_at":"2025-01-20T06:41:43.439Z","etag":null,"topics":["bash","fzf","shell","terminal"],"latest_commit_sha":null,"homepage":"","language":"Shell","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/nobe4.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}},"created_at":"2023-12-05T09:44:16.000Z","updated_at":"2023-12-05T10:27:13.000Z","dependencies_parsed_at":"2023-12-05T11:38:51.332Z","dependency_job_id":"f98438a6-e035-45a4-a9c2-169a6a8f5dd6","html_url":"https://github.com/nobe4/sling.sh","commit_stats":null,"previous_names":["nobe4/sling.sh"],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/nobe4%2Fsling.sh","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/nobe4%2Fsling.sh/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/nobe4%2Fsling.sh/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/nobe4%2Fsling.sh/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/nobe4","download_url":"https://codeload.github.com/nobe4/sling.sh/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":243383215,"owners_count":20282098,"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":["bash","fzf","shell","terminal"],"created_at":"2024-11-19T05:37:41.077Z","updated_at":"2025-12-27T16:01:14.622Z","avatar_url":"https://github.com/nobe4.png","language":"Shell","funding_links":[],"categories":[],"sub_categories":[],"readme":"# `sling.sh`\n\n\u003e Simple launcher.\n\nI used [Alfred](https://www.alfredapp.com/) for a while, and was lurking at\n[Raycast](https://www.raycast.com/) before I decided to write this.\n\nI realised that I spend most my time in a terminal and only wanted to be able to\nrun scripts from anywhere, terminal, or not.\n\n`sling.sh` is the result of this write. It's naïve and bare bone on purpose, you\nneed to adapt it to your configuration.\n\n## How it works\n\n- Create a list of `commands` that can be run.\n- Use `fzf` to fuzzy-find the one you want.\n- Run it.\n\n## Install\n\n- Copy [`sling.sh`](./sling.sh) somewhere in your `$PATH`.\n\n- Adjust to your setup:\n\n\tIn [`sling.sh`](./sling.sh) change:\n\n\t- `LOG_FILE`\n\t- `find` and other references to `./commands/`\n\t- anything else\n\n- Optional - Set a global shortcut.\n\n### Shortcuts\n\nTo access this from non-terminal applications, you need to configure your OS to\nstart a terminal with this command.\n\nYou need to adjust the following to your custom configuration.\n\n#### macOS - native\n\n1. Create an Automator workflow that runs one of the following:\n\n\t- [`Terminal.app`](https://support.apple.com/en-gu/guide/terminal/welcome/mac)\n\t\t`Run AppleScript`:\n\t\t```applescript\n\t\ttell application \"Terminal\" to activate\n\t\ttell application \"Terminal\" to do script \"sling.sh; exit\"\n\t\t```\n\n\t- [`kitty`](https://sw.kovidgoyal.net/kitty/)\n\t\t`Run Shell Script`\n\t\t```bash\n\t\tsource \"${HOME}/.zprofile\" \u0026\u0026 kitty sling.sh\n\t\t```\n\n\t- ...\n\n1. Assign a global shortcut to this workflow.\n\t1. Settings\n\t1. Keyboards\n\t1. Shortcuts\n\t1. Services\n\t1. General\n\t1. Select the service and set the shortcut\n\n#### macOS - Hammerspoon\n\n- [`kitty`](https://sw.kovidgoyal.net/kitty/)\n\n\t```lua\n\ths.hotkey.bind({\"shift\"}, \"space\", function()\n\t    io.popen('source \"${HOME}/.zprofile\" \u0026\u0026 kitty sling.sh')\n\tend)\n\t```\n\n#### Other setups\n\nTBD, PR welcomed.\n\n## Requirements\n\n- [`fzf`](https://github.com/junegunn/fzf)\n\n## Usage\n\n```bash\nsling.sh\n```\n\nSee full help at [`sling.sh`](./sling.sh) or with `sling.sh -h`.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fnobe4%2Fsling.sh","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fnobe4%2Fsling.sh","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fnobe4%2Fsling.sh/lists"}