{"id":48448321,"url":"https://github.com/waylonwalker/tgo","last_synced_at":"2026-04-06T19:01:03.525Z","repository":{"id":342169980,"uuid":"1173104817","full_name":"WaylonWalker/tgo","owner":"WaylonWalker","description":null,"archived":false,"fork":false,"pushed_at":"2026-03-05T02:41:53.000Z","size":3375,"stargazers_count":1,"open_issues_count":0,"forks_count":0,"subscribers_count":0,"default_branch":"main","last_synced_at":"2026-03-05T07:50:09.983Z","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/WaylonWalker.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGELOG.md","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,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null}},"created_at":"2026-03-05T02:32:32.000Z","updated_at":"2026-03-05T02:43:53.000Z","dependencies_parsed_at":null,"dependency_job_id":null,"html_url":"https://github.com/WaylonWalker/tgo","commit_stats":null,"previous_names":["waylonwalker/tgo"],"tags_count":1,"template":false,"template_full_name":null,"purl":"pkg:github/WaylonWalker/tgo","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/WaylonWalker%2Ftgo","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/WaylonWalker%2Ftgo/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/WaylonWalker%2Ftgo/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/WaylonWalker%2Ftgo/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/WaylonWalker","download_url":"https://codeload.github.com/WaylonWalker/tgo/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/WaylonWalker%2Ftgo/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":31485516,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-04-06T17:22:55.647Z","status":"ssl_error","status_checked_at":"2026-04-06T17:22:54.741Z","response_time":112,"last_error":"SSL_read: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"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":[],"created_at":"2026-04-06T19:00:51.952Z","updated_at":"2026-04-06T19:01:03.512Z","avatar_url":"https://github.com/WaylonWalker.png","language":"Go","funding_links":[],"categories":[],"sub_categories":[],"readme":"# tgo\n\n`tgo` is a fast tmux session switcher built for popup workflows.\n\nThe core flow is two keystrokes:\n\n1. open `tgo` in a tmux popup from a tmux key binding\n2. press the session letter and switch instantly\n\n`tgo` lists tmux sessions, pins favorites at the top, and keeps hotkeys stable by priority.\n\n`tgo cpu` and `tgo mem` open a tmux pane picker sorted by live process usage, so you can jump straight to the busiest pane.\n\n## Features\n\n- responsive terminal UI that works in standard terminals and tmux popups\n- direct switch hotkeys using `asdfqwertzxcvb` for the All list\n- favorite hotkeys on `ctrl+asdfqwertzxcvb`\n- favorite pinning with favorites always rendered first\n- reorder modes (`push` / `swap`) with previews and key-change indicators\n- tmux session management from the UI: create (`n`) and kill (`Shift+K`)\n- tmux pane pickers sorted by live CPU or memory usage (`tgo cpu`, `tgo mem`)\n\n## Install\n\nCommon release install options:\n\n```bash\nmise use -g github:waylonwalker/tgo\n```\n\n```bash\ncurl https://i.jpillora.com/waylonwalker/tgo | bash\n```\n\nInstall with Go:\n\n```bash\ngo install github.com/waylonwalker/tgo/cmd/tgo@latest\n```\n\nDownload a release asset with GitHub CLI (example for Linux amd64):\n\n```bash\ngh release download --repo waylonwalker/tgo --pattern 'tgo-linux-amd64.zip'\nunzip tgo-linux-amd64.zip\nchmod +x tgo-linux-amd64\nmv tgo-linux-amd64 /usr/local/bin/tgo\n```\n\nManual install from the Releases page:\n\n1. Download the archive for your OS/arch from `https://github.com/WaylonWalker/tgo/releases`.\n2. Unzip it.\n3. Move the binary to a directory in your `PATH` (for example `/usr/local/bin/tgo`).\n\n## Keymap\n\n- `asdfqwertzxcvb`: switch directly to listed session in `All`\n- `ctrl+asdfqwertzxcvb`: switch directly to listed session in `Favorites`\n- `j/k` or arrow keys: move cursor\n- `tab`: switch active section (`Favorites` / `All`)\n- `space`: toggle reorder mode for selected session\n- `m`: cycle reorder mode (`push` / `swap`)\n- `enter`: switch to selected session\n- `.`: toggle favorite on selected session\n- `n`: create new tmux session (type name, `enter`)\n- `Shift+K`: kill selected tmux session\n- `l`: refresh tmux session list\n- `esc` or `ctrl+c`: quit\n\n## tmux popup binding\n\n```tmux\nbind-key g display-popup -E -w 70% -h 70% \"tgo\"\n```\n\nPick any key you want instead of `g`.\n\n## Usage Pickers\n\n```bash\ntgo cpu\ntgo mem\n```\n\nBoth commands inspect tmux pane PIDs, sum descendant process usage per tmux pane, sort the picker by the requested metric, and switch to the chosen pane target.\n\n## State storage\n\n`tgo` stores favorites, favorite root dirs, and ordering in:\n\n- `$XDG_CONFIG_HOME/tgo/state.json` (falls back to `~/.config/tgo/state.json`)\n\nFavorites persist even if a session is not currently running; missing favorites are recreated using the saved root directory.\n\n## Local development\n\n1. Install [just](https://github.com/casey/just)\n2. Run `just build` to produce `bin/tgo`\n3. Run `just run` inside tmux to use the app\n4. Run `just ci` before pushing changes\n\n## Notes\n\n- `tgo` expects a running tmux server and a tmux client context.\n- switching is implemented with `tmux switch-client -t \u003csession\u003e`.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fwaylonwalker%2Ftgo","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fwaylonwalker%2Ftgo","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fwaylonwalker%2Ftgo/lists"}