starlight_help/src/content/docs/running-bots.mdx
import {TabItem, Tabs} from "@astrojs/starlight/components";
import FlattenedSteps from "../../components/FlattenedSteps.astro"; import ZulipNote from "../../components/ZulipNote.astro";
Zulip's API has a powerful framework for interactive bots that react to messages in Zulip. You can write and run a custom bot, or run an existing Zulip bot.
You'll need:
1. [Download the bot's `zuliprc` file](/api/api-keys#download-a-zuliprc-file).
1. Use the following command to install the
[`zulip_bots` Python package](https://pypi.org/project/zulip-bots/):
```
pip3 install zulip_bots
```
1. Use the following command to start the bot process *(replacing `<bot-name>`
with the bot's name from the
[Zulip bots directory](https://github.com/zulip/python-zulip-api/tree/main/zulip_bots/zulip_bots/bots)
and `~/path/to/zuliprc` with the path to the `zuliprc` file you downloaded above)*:
```
zulip-run-bot <bot-name> --config-file ~/path/to/zuliprc
```
1. Check the output of the command above to make sure your bot is running.
It should include the following line:
```
INFO:root:starting message handling...
```
1. Test your setup by [starting a new direct message](/help/starting-a-new-direct-message)
with the bot or [mentioning](/help/mention-a-user-or-group) the bot on a channel.
</FlattenedSteps>
1. [Create a bot](/help/add-a-bot-or-integration), making sure to select
**Generic bot** as the **Bot type**.
1. [Download the bot's `zuliprc` file](/api/api-keys#download-a-zuliprc-file).
1. Use the following command to install the
[`zulip_bots` Python package](https://pypi.org/project/zulip-bots/):
```
pip3 install zulip_bots
```
1. Use the following command to start the bot process *(replacing
`~/path/to/my_bot.py` with the path to your bot file and
`~/path/to/zuliprc` with the path to the `zuliprc` file you downloaded above)*:
```
zulip-run-bot ~/path/to/my_bot.py --config-file ~/path/to/zuliprc
```
If your bot requires a third-party configuration file, you can specify
it with the `--bot-config-file` option.
1. Check the output of the command above to make sure your bot is running.
It should include the following line:
```
INFO:root:starting message handling...
```
1. Test your setup by [starting a new direct message](/help/starting-a-new-direct-message)
with the bot or [mentioning](/help/mention-a-user-or-group) the bot on a channel.
</FlattenedSteps>
You can now play around with the bot and get it configured the way you like. Eventually, you'll probably want to run it in a production environment where it'll stay up, by deploying it on a server using the Zulip Botserver.