{"id":13563158,"url":"https://github.com/hellerve/hi","last_synced_at":"2026-02-26T18:38:56.538Z","repository":{"id":79626283,"uuid":"83831865","full_name":"hellerve/hi","owner":"hellerve","description":"A dead simple chat","archived":false,"fork":false,"pushed_at":"2017-04-09T15:28:11.000Z","size":11,"stargazers_count":5,"open_issues_count":0,"forks_count":0,"subscribers_count":3,"default_branch":"master","last_synced_at":"2025-04-02T13:21:38.798Z","etag":null,"topics":["chat","minimal"],"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/hellerve.png","metadata":{"files":{"readme":"README.md","changelog":null,"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}},"created_at":"2017-03-03T19:06:42.000Z","updated_at":"2023-09-08T17:21:45.000Z","dependencies_parsed_at":"2023-03-08T00:00:32.325Z","dependency_job_id":null,"html_url":"https://github.com/hellerve/hi","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/hellerve/hi","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/hellerve%2Fhi","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/hellerve%2Fhi/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/hellerve%2Fhi/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/hellerve%2Fhi/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/hellerve","download_url":"https://codeload.github.com/hellerve/hi/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/hellerve%2Fhi/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":29867575,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-02-26T18:27:06.972Z","status":"ssl_error","status_checked_at":"2026-02-26T18:26:57.848Z","response_time":89,"last_error":"SSL_connect returned=1 errno=0 peeraddr=140.82.121.6:443 state=error: 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":["chat","minimal"],"created_at":"2024-08-01T13:01:15.766Z","updated_at":"2026-02-26T18:38:56.511Z","avatar_url":"https://github.com/hellerve.png","language":"Go","funding_links":[],"categories":["Go"],"sub_categories":[],"readme":"# hi\n\nA dead simple chat server and client without any external dependencies.\n\nThe UI is inspired by material design, but comes without framework bloat.\nThe entire page is about 19kb in size, without any minification.\n\nThe server is written in Go and pretty fast. Also, it's dead-simple.\n\nThere are probably bugs.\n\n## Channels\n\nChannels are weird. Anyone can send messages to any channel. A channel\nexists as long as there is someone in that channel. If there isn't, the\nchannel will be closed. What \"being in a channel\" means is basically\nthat you subscribe to it, i.e. you will receive messages posted in that\nchannel. It doesn't affect the way you post there, though. Channels\nare conversations. You can scream something at a group of people, or\nchoose to join that group and interact with them.\n\n## Security\n\nNothing is stored in a database. Everything is kept in memory, there\nis no history. That means that all knowledge and all communication is\nephemeral, like at a party where you join and leave conversations as\nyou please. Please use HTTPS when deploying this chat, preferably through\nnginx or any other web server.\n\n## Deployment\n\nThis is where it gets tricky. If you know how to (cross-)compile Go programs\nand put them on your server and run it, deploying `hi` is as simple as compiling,\ne.g. with `GOOS=\u003cos, probably linux\u003e go build`, and copying the resulting binary\nand the public directory to a server, then letting it run. Letting it run could\nbe more or less involved, depending on your hosting provider. I'll be glad to help.\n\n## Running\n\nThe compiled program can be run without arguments (runs on port 8080) or with\nthe port set (using the `-p` option). It assumes that the public directory is in\nthe directory where the program is started.\n\n## Commands\n\nThere are a few special commands that you can issue to interact with the server,\nIRC-style. All of these commands need to be sent to a channel that the user subscribes\nto.\n\n```\n/join \u003cchannelname\u003e  # join a channel\n/leave \u003cchannelname\u003e # leave a channel (will send back an error if user is not subscribed to the channel)\n/list                # list all users in the current channel\n/channels            # list all channels\n```\n\n\n\u003chr/\u003e\n\nHave fun!\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fhellerve%2Fhi","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fhellerve%2Fhi","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fhellerve%2Fhi/lists"}