{"id":16813183,"url":"https://github.com/ivanvc/tube","last_synced_at":"2025-03-17T11:24:12.360Z","repository":{"id":177987269,"uuid":"659105833","full_name":"ivanvc/tube","owner":"ivanvc","description":"Localtunnel.me client with a TUI","archived":false,"fork":false,"pushed_at":"2024-01-19T23:11:41.000Z","size":4203,"stargazers_count":1,"open_issues_count":0,"forks_count":0,"subscribers_count":2,"default_branch":"main","last_synced_at":"2025-01-23T20:52:54.347Z","etag":null,"topics":["bubbletea","charmbracelet","localtunnel","localtunnel-client","tui"],"latest_commit_sha":null,"homepage":"","language":"Go","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/ivanvc.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}},"created_at":"2023-06-27T06:40:57.000Z","updated_at":"2024-12-28T13:04:43.000Z","dependencies_parsed_at":"2024-01-20T00:24:35.362Z","dependency_job_id":"24ba04c4-b4a9-4f21-9bb7-4b344369d28b","html_url":"https://github.com/ivanvc/tube","commit_stats":null,"previous_names":["ivanvc/tube"],"tags_count":1,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ivanvc%2Ftube","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ivanvc%2Ftube/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ivanvc%2Ftube/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ivanvc%2Ftube/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/ivanvc","download_url":"https://codeload.github.com/ivanvc/tube/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":244022637,"owners_count":20385133,"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":["bubbletea","charmbracelet","localtunnel","localtunnel-client","tui"],"created_at":"2024-10-13T10:25:12.622Z","updated_at":"2025-03-17T11:24:12.326Z","avatar_url":"https://github.com/ivanvc.png","language":"Go","funding_links":[],"categories":[],"sub_categories":[],"readme":"# ![tube](http://ivan.vc/tube/images/logo.png \"tube\")\n\nTube is a [Localtunnel] client. It uses the [go-localtunnel] client library to\nestablish a connection and expose a local port externally.\n\nIt can spawn a command which the tunnel will use, show its output, and reload it\non-demand, or watch for changes using [fsnotify], and automatically reload it.\n\n![intro](http://ivan.vc/tube/images/intro.gif)\n\n## Installation\n\nDownload the binary from the [releases] page. Or run\n\n```bash\ngo install github.com/ivanvc/tube/cmd/tube@latest\n```\n\n## Usage\n\nTo start a tunnel, run:\n\n```bash\ntube [options] [local port] [command to execute]\n```\n\nThe **command to execute** is optional, if specified will spawn the command, and\nwill show the output in the terminal output.\n\nYou can speficy any of the options by arguments to the program, or by an\nenvironment variable, run `tube -h` to see all of the available options. The\nport and command to execute can also be set from environment variables, by using\n`TUBE_PORT` and `TUBE_EXEC_COMMAND`.\n\n### Reload using watch\n\nIf you specify either `-watch` or the environment variable `TUBE_WATCH=1`, it\nwill watch for file changes in the current working directory using `fsnotify`.\nThen, it will reload the **exec command** if specified.\n\n![reload](http://ivan.vc/tube/images/reload.gif)\n\n### TUI mode\n\nThe default execution type has a terminal user interface (made with the\n[Bubble Tea] framework). You can edit the command by typing `e`, and manually\nreload with `r`.\n\n![tui](http://ivan.vc/tube/images/tui.gif)\n\n### Standalone mode\n\nIt's also possible to run in standalone mode (using `-standalone` or by setting\n`TUBE_STANDALONE=1`).\n\nAs the output of the executing program will be shown, if you want to see the\ntunnel's URL, you can send either the `SIGUSR1` or `SIGUSR2` to `tube` (i.e.,\n`pkill -USR1 tube`).\n\nYou can also manually reload the running command by sending `SIGHUP` to `tube`\n(i.e., ` pkill -HUP tube`).\n\n![standalone](http://ivan.vc/tube/images/standalone.gif)\n\n## License\n\nSee [LICENSE](LICENSE) © [Ivan Valdes](https://github.com/ivanvc/)\n\n[Localtunnel]: https://localtunnel.me\n[go-localtunnel]: https://github.com/localtunnel/go-localtunnel\n[releases]: https://github.com/ivanvc/tube/releases\n[fsnotify]: https://github.com/fsnotify/fsnotify\n[Bubble Tea]: https://github.com/charmbracelet/bubbletea\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fivanvc%2Ftube","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fivanvc%2Ftube","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fivanvc%2Ftube/lists"}