{"id":37750713,"url":"https://github.com/nexy7574/nio-bot","last_synced_at":"2026-01-16T14:21:45.674Z","repository":{"id":174931304,"uuid":"652988775","full_name":"nexy7574/nio-bot","owner":"nexy7574","description":"Matrix bot library based on matrix-nio, similar in design to discord.py","archived":false,"fork":false,"pushed_at":"2025-10-13T18:06:26.000Z","size":5309,"stargazers_count":50,"open_issues_count":5,"forks_count":6,"subscribers_count":3,"default_branch":"dev","last_synced_at":"2025-11-29T23:47:44.747Z","etag":null,"topics":["bot","matrix","nio"],"latest_commit_sha":null,"homepage":"https://docs.nio-bot.dev/","language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"lgpl-3.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/nexy7574.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":"CONTRIBUTING.md","funding":".github/FUNDING.yml","license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":"SECURITY.md","support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null},"funding":{"ko_fi":"nexy7574"}},"created_at":"2023-06-13T07:38:13.000Z","updated_at":"2025-10-30T00:23:18.000Z","dependencies_parsed_at":"2023-09-04T18:50:15.560Z","dependency_job_id":"0b3874ca-bae4-42a8-b9ad-3b9780317882","html_url":"https://github.com/nexy7574/nio-bot","commit_stats":null,"previous_names":["eekim10/niobot","nexy7574/niobot","nexy7574/nio-bot"],"tags_count":26,"template":false,"template_full_name":null,"purl":"pkg:github/nexy7574/nio-bot","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/nexy7574%2Fnio-bot","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/nexy7574%2Fnio-bot/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/nexy7574%2Fnio-bot/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/nexy7574%2Fnio-bot/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/nexy7574","download_url":"https://codeload.github.com/nexy7574/nio-bot/tar.gz/refs/heads/dev","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/nexy7574%2Fnio-bot/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":28479393,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-01-16T11:59:17.896Z","status":"ssl_error","status_checked_at":"2026-01-16T11:55:55.838Z","response_time":107,"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":["bot","matrix","nio"],"created_at":"2026-01-16T14:21:45.069Z","updated_at":"2026-01-16T14:21:45.663Z","avatar_url":"https://github.com/nexy7574.png","language":"Python","funding_links":["https://ko-fi.com/nexy7574"],"categories":[],"sub_categories":[],"readme":"# Nio-Bot\n\n## Making Matrix bots simple\n\n[![GitHub issues](https://img.shields.io/github/issues/nexy7574/niobot?style=flat-square\u0026logo=github)](https://github.com/nexy7574/niobot/issues)\n[![GitHub pull requests](https://img.shields.io/github/issues-pr/nexy7574/niobot?style=flat-square\u0026logo=github)](https://github.com/nexy7574/niobot/pulls)\n![GitHub](https://img.shields.io/github/license/nexy7574/niobot?style=flat-square\u0026logo=github)\n[![GitHub Repo stars](https://img.shields.io/github/stars/nexy7574/niobot?style=flat-square\u0026logo=github\u0026label=stars%20%E2%AD%90\u0026color=gold)](https://github.com/nexy7574/niobot/stargazers)\n\n[![PyPI - Downloads](https://img.shields.io/pypi/dm/nio-bot?style=flat-square\u0026logo=pypi)](https://pypi.org/project/nio-bot)\n[![PyPI - Version](https://img.shields.io/pypi/v/nio-bot?style=flat-square\u0026logo=pypi)](https://pypi.org/project/nio-bot)\n[![Python Version from PEP 621 TOML](https://img.shields.io/python/required-version-toml?tomlFilePath=https%3A%2F%2Fraw.githubusercontent.com%2Fnexy7574%2Fniobot%2Fmaster%2Fpyproject.toml\u0026style=flat-square\u0026logo=python)](https://pypi.org/project/nio-bot)\n\n[![Matrix](https://img.shields.io/matrix/niobot%3Anexy7574.co.uk?server_fqdn=matrix.org\u0026style=flat-square\u0026logo=matrix\u0026link=https%3A%2F%2Fmatrix.to%2F%23%2F%23niobot%3Anexy7574.co.uk)](https://matrix.to/#/#niobot:nexy7574.co.uk)\n\n---\n\n## Installing\n\nYou can install the latest stable release from PyPi:\n\n```bash\npip install nio-bot\n# Or for cutting-edge releases:\n# pip install --pre nio-bot\n```\n\nYou may also want some extras:\n\n* End-to-End encryption support: `nio-bot[e2ee]`\n* The CLI (recommended): `nio-bot[cli]`\n* Both: `nio-bot[cli,e2ee]`\n* Development dependencies: `nio-bot[dev]`\n\nPlease note that `e2ee` uses `olm`, which depends on `libolm`. You can likely install this though\nyour system package manager.\nTo install the `dev` extra (for developing niobot itself), you will additionally need\ncmake, gcc, g++, python devel, and rustc.\n\n## Features\n\nNio-Bot extends [matrix-nio](https://pypi.org/project/matrix-nio), sitting on top of it, and simply\nproviding a unified command interface, honing the base client to be more suited to bots and other\nautomated applications.\n\nNio-Bot comes with a whole host of features to help make your development experience as easy as\npossible. Some features include, but are not limited to:\n\n* A powerful commands framework (Modules, aliases, checks, easy extensibility)\n* Custom argument parser support\n* A flexible event system\n* Simple end-to-end encryption\n* Automatic markdown rendering when sending/editing messages\n* Super simple to use Attachments system\n* Very customisable monolithic client instance\n* A simple, easy-to-use CLI tool for some on-the-go tasks\n* Full attachment support (File, Image, Audio, Video), with encryption support\n* [In-depth, simple, clean documentation](https://docs.nio-bot.dev/stable)\n\n## Help\n\nYou can join our [Matrix Room](https://nio-bot.dev/support) for help, or to just chat.\nYou can also get the latest updates in development there, including having your say in how new\nthings are implemented!\n\n## A quick example\n\n```python\n# This example was written using version 1.1.0.\nimport niobot\n\nclient = niobot.NioBot(\n    # Note that all of these options other than the following are optional:\n    # * homeserver\n    # * user_id\n    # * command_prefix\n    homeserver=\"https://matrix.example.org\",  # it is important that you use the matrix server, not the delegation URL\n    user_id=\"@example1:example.org\",\n    device_id=\"my-device-name\",\n    command_prefix=\"!\",\n    case_insensitive=True,\n    owner_id=\"@example2:example.org\",\n    ignore_self=True  # default is True, set to false to not ignore the bot's own messages\n)\n\n@client.on_event(\"ready\")\nasync def on_ready(sync_result: niobot.SyncResponse):\n    print(\"Logged in!\")\n\n\n# A simple command\n@client.command()\nasync def ping(ctx: niobot.Context):\n    latency = ctx.latency\n    await ctx.respond(f\"Pong! {latency:.2f}ms\")\n\n\n# A command with arguments\n@client.command()\nasync def echo(ctx: niobot.Context, *, message: str):\n    await ctx.respond(\"You said: \" + message)\n\n\nclient.run(access_token=\"...\")\n```\n\n### Using the CLI to get an access token\n\nIf you install the cli extras, you can use `niocli` to get an access token\nfrom a username and password (read [this](https://docs.nio-bot.dev/stable/guides/001-getting-started/#why-is-logging-in-with-a-password-so-bad) for why you'd want to use an access token):\n\n```bash\nniocli get-access-token -U '@example1:example.org' -D 'my-device-name'\n```\n\nAfter putting in your password, an access token will be printed to the console once the login is\nsuccessful.\n\n## Further reading\n\nLook at the [docs](https://docs.nio-bot.dev) for more information on how to use Nio-Bot, or the\n[examples on GitHub](https://github.com/nexy7574/niobot).\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fnexy7574%2Fnio-bot","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fnexy7574%2Fnio-bot","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fnexy7574%2Fnio-bot/lists"}