A command handler for hikari with a focus on type-safety and correctness.
To install arc, run the following command:
pip install -U hikari-arc
To check if arc has successfully installed or not, run the following:
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 to get started with.
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, or the examples.
For general usage help or questions, see the hikari discord, if you have found a bug or have a feature request, feel free to open an issue!
See Contributing.
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
- The library initially started as a reimagination of lightbulb, it inherits a similar project structure and terminology.Tanjun
- For the idea of usingtyping.Annotated
and dependency injection in a command handler.arc
also uses the same dependency injection library,Alluka
, under the hood.hikari-crescent
The design of hooks is largely inspired bycrescent
.FastAPI
- Some design ideas and most of the documentation configuration derives fromFastAPI
.- The
arc
logo was made by @PythonTryHard.