{"id":13691457,"url":"https://github.com/qnkhuat/tstream","last_synced_at":"2025-05-07T15:21:57.990Z","repository":{"id":41353547,"uuid":"379962647","full_name":"qnkhuat/tstream","owner":"qnkhuat","description":"Live streaming from your terminal","archived":false,"fork":false,"pushed_at":"2022-07-01T04:39:04.000Z","size":4837,"stargazers_count":269,"open_issues_count":1,"forks_count":9,"subscribers_count":2,"default_branch":"main","last_synced_at":"2025-05-06T07:16:32.288Z","etag":null,"topics":["chat","go","streaming","terminal","terminal-app","webrtc"],"latest_commit_sha":null,"homepage":"https://tstream.xyz","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/qnkhuat.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":"2021-06-24T15:00:15.000Z","updated_at":"2024-09-14T13:07:12.000Z","dependencies_parsed_at":"2022-09-19T03:51:39.153Z","dependency_job_id":null,"html_url":"https://github.com/qnkhuat/tstream","commit_stats":null,"previous_names":[],"tags_count":8,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/qnkhuat%2Ftstream","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/qnkhuat%2Ftstream/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/qnkhuat%2Ftstream/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/qnkhuat%2Ftstream/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/qnkhuat","download_url":"https://codeload.github.com/qnkhuat/tstream/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":252902755,"owners_count":21822301,"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":["chat","go","streaming","terminal","terminal-app","webrtc"],"created_at":"2024-08-02T17:00:45.353Z","updated_at":"2025-05-07T15:21:57.973Z","avatar_url":"https://github.com/qnkhuat.png","language":"Go","funding_links":[],"categories":["Go","\u003ca name=\"networking\"\u003e\u003c/a\u003eNetworking","Projects"],"sub_categories":["Streaming"],"readme":"\u003ch1 style=\"border-bottom:0\" align=\"center\"\u003eTStream - Streaming from terminal\u003c/h1\u003e\n\u003ca href=\"https://tstream.xyz\"\u003e\u003cp align=\"center\"\u003e\u003cimg style=\"border-radius:20px;\" src=\"./client/public/android-chrome-192x192.png\"/\u003e\u003c/p\u003e\u003c/a\u003e\n\n\u003cp align=\"center\"\u003e\n\u003ca href=\"https://tstream.xyz\"\u003etstream.xyz \u003c/a\u003e | \u003ca href=\"https://discord.gg/qATHjk6ady\"\u003e Join our Discord \u003c/a\u003e | \u003ca href=\"https://tstream.xyz/start-streaming\"\u003eStart Streaming\u003c/a\u003e\n\u003c/p\u003e\n\n![TStream](./client/public/demo.gif)\n\n# Install\n## Download pre-built package\nThe easiest way to install `tstream` is download it form our [Release](https://github.com/qnkhuat/tstream/releases) page. Make sure you download the version that match your Operating System\n- Unpack it with command: `tar -xzf tstream_{version}_{os}_{arch}.tar.gz`\n- Setup TStream to run it anywhere: `cp tstream /usr/local/bin`\n\n## Build from source\n- Install the [Go toolchain](https://golang.org/dl/)\n- Clone the project: `https://github.com/qnkhuat/tstream`\n- Cd to tstream source code: `cd tstream/`\n- Build: `go build cmd/tstream.go`\n- Setup TStream to run it anywhere: `cp tstream /usr/local/bin`\n\n\n# Start Streaming\nJust type `tstream` in the terminal and it will instruct you 🙂\n\nIf you want to start a private session run: `tstream -private`\n\n### (Optional) Tstream chat inside terminal\nWe also have a chat client on terminal, you can start it with `tstream -chat` after you've started your streaming session\n![TStream chat](./client/public/chat.gif)\n\n### (Optional) Voice chat 🔈\nInside TStream chat client, you can turn on voice chat with command `/unmute` and turn off it with `/mute`\n\n\n# Self Host\nThis diagram is an overview of all needed components to run TStream\n\n![Overview of TStream](./client/public/Overview.png)\n\n## TServer\nThe easiest way to install `tserver` is download it from our [Release](https://github.com/qnkhuat/tstream/releases) page\n\nOr if you prefer to build from source\n- Clone the repo `git clone https://github.com/qnkhuat/tstream`\n- Install the [Go toolchain](https://golang.org/dl/)\n- Build the server package: `cd tstream/tstream \u0026\u0026 go build cmd/server`\n- Run it `./server`\n\nOptional configurations:\n- `-host localhost:3000`: Address to server tserver. Default is `localhost:3000`\n- `-db .db`: path to BoltDB file. This DB is used to store data like: finished streaming. Default is `$(pwd)/.db`\n\nTest the server with `curl http://localhost:3000/api/health`. It should return the current time\n\n## Client web app\nThis is what currently running at [tstream.xyz](https://tstream.xyz). \n\nTo run it:\n- Install [nodejs](https://nodejs.org/en/download/)\n- Clone the repo: `git clone https://github.com/qnkhuat/tstream`\n- cd to the client folder: `cd client/`\n- Install dependencies: `npm install`\n- Tell the client your the server address by: `export REACT_APP_API_URL={your server address}`\n- Run server: `npm run start`\n\nNow go to `localhost:3001`, it should be exactly like [tstream.xyz](https://tstream.xyz)\n\nFor production I recommend using service like [Vercel](https://vercel.com/). It's free and very easy to setup\n\n## Streaming \n\nBy default the tstream package will stream to [https://server.tstream.xyz](https://server.tstream.xyz)\n\nYou can override it with by running `tstream -server {your server address}`. \n\nFor example : `tstream -server http://localhost:3000`\n\n# Upcoming features\n- [x] One command to stream terminal session to web =\u003e just like tty-share\n- [x] In room Chat\n- [x] Voice chat\n- [ ] Stream playback\n- [x] Private session\n- [ ] Multiple tabs support\n- [ ] User management system\n\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fqnkhuat%2Ftstream","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fqnkhuat%2Ftstream","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fqnkhuat%2Ftstream/lists"}