{"id":13406417,"url":"https://github.com/irislib/iris-messenger","last_synced_at":"2026-03-04T13:23:53.386Z","repository":{"id":36959030,"uuid":"233685638","full_name":"irislib/iris-messenger","owner":"irislib","description":"Decentralized messenger","archived":false,"fork":false,"pushed_at":"2024-10-19T08:37:03.000Z","size":55387,"stargazers_count":723,"open_issues_count":114,"forks_count":164,"subscribers_count":24,"default_branch":"master","last_synced_at":"2025-10-09T12:22:52.125Z","etag":null,"topics":["nostr"],"latest_commit_sha":null,"homepage":"https://iris.to","language":"TypeScript","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/irislib.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":".github/FUNDING.yml","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,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null},"funding":{"github":null,"patreon":null,"open_collective":"iris-social","ko_fi":null,"tidelift":null,"community_bridge":null,"liberapay":null,"issuehunt":null,"otechie":null,"custom":null}},"created_at":"2020-01-13T20:21:19.000Z","updated_at":"2025-10-02T18:20:34.000Z","dependencies_parsed_at":"2023-12-15T10:09:21.160Z","dependency_job_id":"d98a0737-465e-4998-9554-338f827780e1","html_url":"https://github.com/irislib/iris-messenger","commit_stats":{"total_commits":3577,"total_committers":53,"mean_commits":67.49056603773585,"dds":"0.037461559966452285","last_synced_commit":"a522e919c6b7fd74b2df8ea4edeee053e2300094"},"previous_names":[],"tags_count":7,"template":false,"template_full_name":null,"purl":"pkg:github/irislib/iris-messenger","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/irislib%2Firis-messenger","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/irislib%2Firis-messenger/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/irislib%2Firis-messenger/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/irislib%2Firis-messenger/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/irislib","download_url":"https://codeload.github.com/irislib/iris-messenger/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/irislib%2Firis-messenger/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":30081268,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-03-04T13:22:36.021Z","status":"ssl_error","status_checked_at":"2026-03-04T13:20:45.750Z","response_time":59,"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":["nostr"],"created_at":"2024-07-30T19:02:29.735Z","updated_at":"2026-03-04T13:23:53.362Z","avatar_url":"https://github.com/irislib.png","language":"TypeScript","funding_links":["https://opencollective.com/iris-social","https://opencollective.com/iris-social/donate"],"categories":["TypeScript","Install from Source","JavaScript","Clients","others","网络服务","Wallets - Nostr NIP-60/61 support"],"sub_categories":["Nostr","Other","网络服务_其他"],"readme":"19-10-2024 NOTE: Current [iris.to](https://iris.to) source code is at https://github.com/irislib/iris-client\n\n---\n\n![git_banner_1200x200](https://user-images.githubusercontent.com/52623440/226903633-7902aa21-6041-4bad-979a-dc98bd0ad317.png)\n\u003cdiv align=\"center\"\u003e\n\n[nostr](https://iris.to/iris) | [twitter](https://www.twitter.com/iristoapp) | [instagram](https://www.instagram.com/iristoapp) | [youtube](https://www.youtube.com/@iristoapp) | [linkedin](https://www.linkedin.com/company/91035282/) | [tiktok](https://www.tiktok.com/@iristoapp)\n\n\u003c/div\u003e\n\n\n# Iris – The app for better social networks\n\n[Iris](https://iris.to/) is a Nostr [Android](https://play.google.com/store/apps/details?id=to.iris.twa), [iOS](https://apps.apple.com/app/iris-the-nostr-client/id1665849007) and [web](https://iris.to/) client that has also standalone desktop ([Windows, MacOS, Linux](https://github.com/irislib/iris-messenger/releases)) and [Docker](#docker) versions.\n\n- Sign up in seconds: Just type a name and hit \"Go\" \n- Secure: It's open source. Users can validate that big brother doesn't read your private messages.\n- Available: It works offline-first and is not dependent on any single centrally managed server.\n\n## Sign up, get started, FAQ and support\n\nVisit [Iris FAQ](https://github.com/irislib/faq) for features, explanations and troubleshooting.\n\n  https://user-images.githubusercontent.com/52623440/225862232-7ac9a16a-bf14-4745-ad48-3e3a67bc597e.mp4\n\n## Develop\n\n```bash\ngit clone https://github.com/irislib/iris-messenger.git\n```\n\n\u003cdetails open\u003e\u003csummary\u003eYarn\u003c/summary\u003e\n\n```bash\n# install dependencies\nyarn\n\n# serve with hot reload at localhost:8080\nyarn dev\n\n# build for production with minification\nyarn build\n\n# test the production build locally\nyarn serve\n\n# run tests with jest and enzyme\nyarn test\n```\n\n\u003c/details\u003e\n\u003cdetails\u003e\u003csummary\u003enpm\u003c/summary\u003e\n\n```bash\n# install dependencies\nnpm i\n\n# serve with hot reload at localhost:8080\nnpm run dev\n\n# build for production with minification\nnpm run build\n\n# test the production build locally\nnpm run serve\n\n# run tests with jest and enzyme\nnpm run test\n```\n\n\u003c/details\u003e\n\n[iris.to](https://iris.to) production version is in the [production](https://github.com/irislib/iris-messenger/tree/production) branch.\n\n#### Stack:\n* [Vite](https://vitejs.dev/) — a fast frontend build tool\n* [Preact](https://preactjs.com/) — a fast 3kB alternative to React with the same modern API\n* [Tailwind CSS](https://tailwindcss.com/docs/installation) — a CSS framework for rapid UI development. Less custom CSS.\n* [DaisyUI](https://daisyui.com/components/) — a component library for Tailwind CSS\n\n### Docker\n\nAlternatively, you can run the dev environment on Docker: `docker-compose up`. The dev build with autoreload will be available at http://localhost:8080. \n\nWith [Docker Desktop](https://www.docker.com/products/docker-desktop/) and [GitHub Desktop](https://desktop.github.com/) this is an easy way to get started with development. Just clone this repository and run `docker-compose up` in a terminal in its directory.\n\n### Tauri (desktop app)\n\n[Tauri docs](https://tauri.app/v1/guides/)\n\n\u003cdetails open\u003e\u003csummary\u003eYarn\u003c/summary\u003e\n\n```bash\n# install dependencies\nyarn\n\n# develop\nyarn tauri dev\n\n# build\nyarn tauri build\n```\n\n\u003c/details\u003e\n\u003cdetails\u003e\u003csummary\u003enpm\u003c/summary\u003e\n\n```bash\n# install dependencies\nnpm i\n\n# develop\nnpm run tauri dev\n\n# build\nnpm run tauri build\n```\n\u003c/details\u003e\n\n[iris.to](https://iris.to) production version is in the [production](https://github.com/irislib/iris-messenger/tree/production) branch.\n\nMaster branch is deployed to [beta.iris.to](https://beta.iris.to).\n\nTauri [desktop releases](https://github.com/irislib/iris-messenger/releases) are built from the `release` branch by GitHub CI.\n\n## NIPS implemented\n\n- [x] [NIP-01: Basic protocol flow description](https://github.com/nostr-protocol/nips/blob/master/01.md)\u003cbr\u003e\n- [x] [NIP-02: Contact List and Petnames](https://github.com/nostr-protocol/nips/blob/master/02.md)\u003cbr\u003e\n- [ ] [NIP-03: OpenTimestamps Attestations for Events](https://github.com/nostr-protocol/nips/blob/master/03.md)\u003cbr\u003e\n- [x] [NIP-04: Encrypted Direct Message](https://github.com/nostr-protocol/nips/blob/master/04.md)\u003cbr\u003e\n- [x] [NIP-05: Mapping Nostr keys to DNS-based internet identifiers](https://github.com/nostr-protocol/nips/blob/master/05.md)\u003cbr\u003e\n- [ ] [NIP-06: Basic key derivation from mnemonic seed phrase](https://github.com/nostr-protocol/nips/blob/master/06.md)\u003cbr\u003e\n- [x] [NIP-07: `window.nostr` capability for web browsers](https://github.com/nostr-protocol/nips/blob/master/07.md)\u003cbr\u003e\n- [x] [NIP-08: Handling Mentions](https://github.com/nostr-protocol/nips/blob/master/08.md)\u003cbr\u003e\n- [x] [NIP-09: Event Deletion](https://github.com/nostr-protocol/nips/blob/master/09.md)\u003cbr\u003e\n- [x] [NIP-10: Conventions for clients' use of `e` and `p` tags in text events](https://github.com/nostr-protocol/nips/blob/master/10.md)\u003cbr\u003e\n- [x] [NIP-19: bech32-encoded entities](https://github.com/nostr-protocol/nips/blob/master/19.md)\u003cbr\u003e\n- [x] [NIP-20: Command Results](https://github.com/nostr-protocol/nips/blob/master/20.md)\u003cbr\u003e\n- [ ] [NIP-21: `nostr:` URL scheme](https://github.com/nostr-protocol/nips/blob/master/21.md)\u003cbr\u003e\n- [ ] [NIP-23: Long-form Content](https://github.com/nostr-protocol/nips/blob/master/23.md)\u003cbr\u003e\n- [x] [NIP-25: Reactions](https://github.com/nostr-protocol/nips/blob/master/25.md)\u003cbr\u003e\n- [ ] [NIP-26: Delegated Event Signing](https://github.com/nostr-protocol/nips/blob/master/26.md)\u003cbr\u003e\n- [ ] [NIP-28: Public Chat](https://github.com/nostr-protocol/nips/blob/master/28.md)\u003cbr\u003e\n- [x] [NIP-33: Parameterized Replaceable Events](https://github.com/nostr-protocol/nips/blob/master/33.md)\u003cbr\u003e\n- [ ] [NIP-39: External Identities in Profiles](https://github.com/nostr-protocol/nips/blob/master/39.md)\u003cbr\u003e\n- [ ] [NIP-40: Expiration Timestamp](https://github.com/nostr-protocol/nips/blob/master/40.md)\u003cbr\u003e\n- [x] [NIP-42: Authentication of clients to relays](https://github.com/nostr-protocol/nips/blob/master/42.md)\u003cbr\u003e\n- [ ] [NIP-46: Nostr Connect](https://github.com/nostr-protocol/nips/blob/master/46.md)\u003cbr\u003e\n- [x] [NIP-50: Keywords filter](https://github.com/nostr-protocol/nips/blob/master/50.md)\u003cbr\u003e\n- [ ] [NIP-51: Lists](https://github.com/nostr-protocol/nips/blob/master/51.md)\u003cbr\u003e\n- [ ] [NIP-56: Reporting](https://github.com/nostr-protocol/nips/blob/master/56.md)\u003cbr\u003e\n- [x] [NIP-57: Lightning Zaps](https://github.com/nostr-protocol/nips/blob/master/57.md)\u003cbr\u003e\n- [ ] [NIP-58: Badges](https://github.com/nostr-protocol/nips/blob/master/58.md)\u003cbr\u003e\n- [ ] [NIP-65: Relay List Metadata](https://github.com/nostr-protocol/nips/blob/master/65.md)\u003cbr\u003e\n\n\n## Privacy\n\nThe application is an unaudited proof-of-concept implementation, so don't use it for security critical purposes.\n\n---\n\n\u003ca href=\"https://opencollective.com/iris-social/donate\" target=\"_blank\"\u003e\u003cimg src=\"https://opencollective.com/iris-social/donate/button@2x.png?color=blue\" width=200 /\u003e\u003c/a\u003e\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Firislib%2Firis-messenger","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Firislib%2Firis-messenger","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Firislib%2Firis-messenger/lists"}