https://github.com/hypergonial/hikari-arc
A command handler for hikari with a focus on type-safety and correctness.
https://github.com/hypergonial/hikari-arc
dependency-injection discord discord-bot discord-bot-framework discord-command-handler hikari hikari-arc hikari-py slash-commands
Last synced: 3 months ago
JSON representation
A command handler for hikari with a focus on type-safety and correctness.
- Host: GitHub
- URL: https://github.com/hypergonial/hikari-arc
- Owner: hypergonial
- License: mit
- Created: 2023-12-27T21:52:43.000Z (over 2 years ago)
- Default Branch: main
- Last Pushed: 2025-11-13T17:47:58.000Z (5 months ago)
- Last Synced: 2025-11-13T19:26:54.518Z (5 months ago)
- Topics: dependency-injection, discord, discord-bot, discord-bot-framework, discord-command-handler, hikari, hikari-arc, hikari-py, slash-commands
- Language: Python
- Homepage: https://arc.hypergonial.com/
- Size: 2.35 MB
- Stars: 27
- Watchers: 2
- Forks: 6
- Open Issues: 2
-
Metadata Files:
- Readme: README.md
- Contributing: CONTRIBUTING.md
- Funding: .github/FUNDING.yml
- License: LICENSE
Awesome Lists containing this project
README
---
[](https://pypi.org/project/hikari-arc)
[](https://github.com/hypergonial/hikari-arc/actions/workflows/ci.yml)
[](https://github.com/charliermarsh/ruff)

A command handler for [hikari](https://github.com/hikari-py/hikari) with a focus on type-safety and correctness.
## Installation
To install arc, run the following command:
```sh
pip install -U hikari-arc
```
To check if arc has successfully installed or not, run the following:
```sh
python3 -m arc
# On Windows you may need to run:
py -m arc
```
> [!NOTE]
> `hikari-arc` requires a Python version of *at least* 3.10.
If you're just getting started, you may also use the [template repository](https://github.com/hypergonial/arc-template) to get started with.
## Basic Usage
```py
import hikari
import arc
bot = hikari.GatewayBot("TOKEN") # or hikari.RESTBot
client = arc.GatewayClient(bot) # or arc.RESTClient
@client.include
@arc.slash_command("hi", "Say hi!")
async def ping(
ctx: arc.GatewayContext,
user: arc.Option[hikari.User, arc.UserParams("The user to say hi to.")]
) -> None:
await ctx.respond(f"Hey {user.mention}!")
bot.run()
```
To get started with `arc`, see the [documentation](https://arc.hypergonial.com), or the [examples](https://github.com/hypergonial/hikari-arc/tree/main/examples).
## Issues and support
For general usage help or questions, see the [hikari discord](https://discord.gg/hikari), if you have found a bug or have a feature request, feel free to [open an issue](https://github.com/hypergonial/hikari-arc/issues/new/choose)!
## Contributing
See [Contributing](./CONTRIBUTING.md).
## Acknowledgements
`arc` is in large part a combination of all the parts I like in other command handlers, with my own spin on it. The following projects have inspired me and aided me greatly in the design of this library:
- [`hikari-lightbulb`](https://github.com/tandemdude/hikari-lightbulb) - The library initially started as a reimagination of lightbulb, it inherits a similar project structure and terminology.
- [`Tanjun`](https://github.com/FasterSpeeding/Tanjun) - For the idea of using `typing.Annotated` and [dependency injection](https://arc.hypergonial.com/guides/dependency_injection/) in a command handler. `arc` also uses the same dependency injection library, [`Alluka`](https://github.com/FasterSpeeding/Alluka), under the hood.
- [`hikari-crescent`](https://github.com/hikari-crescent/hikari-crescent) The design of [hooks](https://arc.hypergonial.com/guides/hooks/) is largely inspired by `crescent`.
- [`FastAPI`](https://github.com/tiangolo/fastapi) - Some design ideas and most of the [documentation](https://arc.hypergonial.com/) [configuration](https://github.com/hypergonial/hikari-arc/blob/main/mkdocs.yml) derives from `FastAPI`.
- The `arc` logo was made by [@PythonTryHard](https://github.com/PythonTryHard).
## Links
- [**Documentation**](https://arc.hypergonial.com)
- [**Examples**](https://github.com/hypergonial/hikari-arc/tree/main/examples)
- [**License**](https://github.com/hypergonial/hikari-arc/blob/main/LICENSE)