{"id":13801600,"url":"https://github.com/nhexirc/nhex","last_synced_at":"2025-05-13T11:31:32.067Z","repository":{"id":229539412,"uuid":"776917706","full_name":"nhexirc/nhex","owner":"nhexirc","description":"A next-generation IRC client inspired by HexChat","archived":false,"fork":false,"pushed_at":"2024-05-06T13:11:01.000Z","size":19155,"stargazers_count":8,"open_issues_count":39,"forks_count":0,"subscribers_count":0,"default_branch":"main","last_synced_at":"2024-05-07T19:49:00.150Z","etag":null,"topics":["irc","irc-client","react","rust","rust-lang","tauri","tauri-app","typescript"],"latest_commit_sha":null,"homepage":"https://nhexirc.com","language":"TypeScript","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/nhexirc.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,"publiccode":null,"codemeta":null}},"created_at":"2024-03-24T19:51:08.000Z","updated_at":"2024-05-08T22:26:48.868Z","dependencies_parsed_at":"2024-05-08T22:26:38.969Z","dependency_job_id":null,"html_url":"https://github.com/nhexirc/nhex","commit_stats":null,"previous_names":["nhexchat/client","nhexirc/client","nhexirc/nhex"],"tags_count":22,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/nhexirc%2Fnhex","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/nhexirc%2Fnhex/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/nhexirc%2Fnhex/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/nhexirc%2Fnhex/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/nhexirc","download_url":"https://codeload.github.com/nhexirc/nhex/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":253932892,"owners_count":21986473,"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":["irc","irc-client","react","rust","rust-lang","tauri","tauri-app","typescript"],"created_at":"2024-08-04T00:01:24.835Z","updated_at":"2025-05-13T11:31:27.316Z","avatar_url":"https://github.com/nhexirc.png","language":"TypeScript","funding_links":[],"categories":["TypeScript","Applications"],"sub_categories":["Networking"],"readme":"# nhex\nA next-generation IRC client inspired by [HexChat](https://hexchat.github.io/). Powered by [vinezombie](https://crates.io/crates/vinezombie) \u0026 [React](https://react.dev/), built with [Tauri](https://tauri.app/).\n\n[![Build Check](https://github.com/nhexirc/nhex/actions/workflows/build_check.yml/badge.svg)](https://github.com/nhexirc/nhex/actions/workflows/build_check.yml) [![Netlify Status](https://api.netlify.com/api/v1/badges/aca73784-8f91-4be8-8bf0-391e0c93b13d/deploy-status)](https://app.netlify.com/sites/nhex/deploys)\n\n![](./packages/client/public/screenshots/nh_conn.png)\n\n_Jump right to [the downloads](https://github.com/nhexirc/nhex/releases/latest) or [the documentation](https://nhexirc.com/docs)._\n\nPronounced \"_nex_\" (the \"_h_\" is silent).\n\n**[Contributors](#contributing) needed \u0026 wanted!** Apply... by submitting a PR! [The 1.0 milestone](https://github.com/nhexirc/client/milestone/1) is a great place to start looking for tasks with immediate impact.\n\nChat with us at [#nhex on irc.libera.chat](https://web.libera.chat/?channel=#nhex).\n# Screenshots\n\n## Normal views (Day/Night theme)\n![](./packages/client/public/screenshots/nh_irc.png)\n![](./packages/client/public/screenshots/nh_server.png)\n![](./packages/client/public/screenshots/nh_conn_alt.png)\n\n## Mobile views (Medium and Small)\n![](./packages/client/public/screenshots/nh_mobile_med.png)\n![](./packages/client/public/screenshots/nh_mobile_small.png)\n\n# Downloading\n\nSee the [latest release](https://github.com/nhexirc/nhex/releases/latest) to download installers for Debian-based Linux distros, Windows \u0026 Mac OS.\n\n# Using\n\nSee [the documentation](https:///nhexirc.com/docs) for full usage details.\n\n# Developing\n\n## Prerequisites\n\n* [Tauri pre-requisites](https://tauri.app/v1/guides/getting-started/prerequisites/) ([node.js](https://nodejs.org/en/download) \u0026 [rust](https://www.rust-lang.org/tools/install))\n\n#### Recommended IDE Setup\n\n- [VS Code](https://code.visualstudio.com/) + [Tauri](https://marketplace.visualstudio.com/items?itemName=tauri-apps.tauri-vscode) + [rust-analyzer](https://marketplace.visualstudio.com/items?itemName=rust-lang.rust-analyzer)\n\n```shell\n$ npm install\n$ npm run tauri dev\n```\n\n## Building\n\n### Locally\n\n```shell\n$ npm run tauri build\n```\n\n### In CI/CD\n\nYou can manually trigger builds by prepending `dev-build/` to any branch name.\n\nAll Pull Requests will automatically trigger the development pipeline.\n\nThe development pipeline will create a draft pre[release](https://github.com/nhexirc/nhex/releases) with your assets attached.\n\n## Contributing\n\n### Development Guidelines\n\n1. This is **not** a source-level port! This is an entirely new application wholly _inspired by_ the best (IMHO) GUI IRC client that ever existed. RIP HexChat.\n   * In fact, source introspection is *prohibited* for contributors! Black-box behavioral inspection of HexChat (e.g. use it, see how it works, replicate the behavior) is the only allowed form of HexChat inspection.\n1. **Do not** share state between components! This is *paramount* for future maintainability. If one component (`A`) must affect the state of another (`B`), we use the actor model: `A` sends the appropriate message on the event system which `B` listens for and updates its internal state accordingly.\n1. Lift out of Rust _early_ \u0026 _often_. So, as long as it is reasonable \u0026 performant* to do so, implementation should prefer to live in the frontend not the backend.\n    * \\* It nearly _always_ will be: this is an IRC client, not a 120 FPS video game.\n    * This contributes directly to the [long-term goal of extracting the UX into a web app!](https://github.com/nhexirc/client/issues/17)\n1. 7 is a theme in design for nhex: include as subtly as possible! ([\"Hexa\"](https://en.wikipedia.org/wiki/Numeral_prefix#Table_of_number_prefixes_in_English) is a prefix for \"six\", plus one, hence 7.)\n\n### Creating a release\n\nUse the included [`create-release` script](/packages/client/scripts/create-release) to prepare the release:\n\n```shell\n$ ./scripts/create-release major\n```\n\nWhere `major` is the release type as supported by [`semver.inc()`](https://www.npmjs.com/packages/semver). If not provided, the default value for this argument is `patch`.\n\nThe script will increment the appropriate `version` field in all necessary metadata files and provide a set of `git` CLI invocations to commit, tag \u0026 push the release.\n\nAny tag beginning with `v` will trigger the release pipeline, and this script suggests just a tag to be used.\n\nThe resulting [release](https://github.com/nhexirc/nhex/releases) will be a draft - not yet visible to the public - until you publish it. When you do, please include a short high-level description of the release and use GitHub's \"Create Release Notes\" functionality to generate a changelog.\n\n## Contributors\n\nIn addition to our amazing team (which is growing fast!) the list of incredible folks who have contributed ideas, advice, suggestions, etc. on irc.libera.chat has already grown too numerous to easily keep track of here!\n\nThe response has been overwhelming, so a huge thanks to all of those who did contribute. Y'all rock! 🤘❤️\n\n### Special Mention\n\nLogo design by `hmw[at]`, with additional ideation from `InPhase` \u0026 `systemfault` (all of [libera](https://libera.chat/)).\n\n## License\n\n`nhex` is multi-licensed, the details of which can be found in the [DEP5](https://reuse.software/spec/#dep5) file [.reuse/dep5](./packages/client/.reuse/dep5).\n\nAt a high level, the React-based frontend is licensed under the [MIT]([./packages/client/LICENSES/MIT.txt) license \u0026 the Rust-based backend under the [Mozilla Public License, version 2.0](./packages/client/LICENSES/MPL-2.0.txt).\n\nYou agree for any contributions submitted by you for inclusion into nhex to be redistributed under these licenses.\n\nLicense text can be found in [LICENSES](./packages/client/LICENSES/).\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fnhexirc%2Fnhex","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fnhexirc%2Fnhex","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fnhexirc%2Fnhex/lists"}