the little dino terror bot of irc

docs: add readme and license

dunkirk.sh 1634eb68 2df5d7c9

verified
Changed files
+95
+25
LICENSE.md
···
+
The MIT License (MIT)
+
=====================
+
+
Copyright © `2025` `Kieran Klukas`
+
+
Permission is hereby granted, free of charge, to any person
+
obtaining a copy of this software and associated documentation
+
files (the “Software”), to deal in the Software without
+
restriction, including without limitation the rights to use,
+
copy, modify, merge, publish, distribute, sublicense, and/or sell
+
copies of the Software, and to permit persons to whom the
+
Software is furnished to do so, subject to the following
+
conditions:
+
+
The above copyright notice and this permission notice shall be
+
included in all copies or substantial portions of the Software.
+
+
THE SOFTWARE IS PROVIDED “AS IS”, WITHOUT WARRANTY OF ANY KIND,
+
EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES
+
OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+
NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT
+
HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
+
WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
+
FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
+
OTHER DEALINGS IN THE SOFTWARE.
+70
README.md
···
+
# tacy irc bot
+
+
This is a little bot I made to run on irc to try and experiment with non linear turns with an llm. IRC is inherintly a mutli conversation medium that doesn't work in strict turns which makes it tricky create a good conversation LLM bot. This currently does a passible job but it would be interesting to try applying a more human like buffer where it doesn't think about stuff untill it has collected a certain amount of messages or a certain timeframe of messages.
+
+
## How do I hack on it?
+
+
### Development
+
+
This is entirely in python with `dotenv` as the only non-standard library.
+
+
```bash
+
pip3 install dotenv
+
python3 irc.py
+
```
+
+
### Environment Setup
+
+
Make a `.env` file with the following:
+
+
```bash
+
# IRC Server Configuration
+
IRC_HOST=irc.hackclub.com
+
IRC_PORT=6667
+
IRC_TLS=0
+
+
# Bot Identity
+
IRC_NICK=tacy
+
IRC_USER=tacy
+
IRC_REAL="tacy bot"
+
+
# Channels (comma-separated for multiple)
+
IRC_CHANNEL=#lounge
+
IRC_CHANNELS=#lounge
+
+
# Authentication (optional)
+
IRC_PASSWORD=
+
IRC_NICKSERV_PASSWORD=
+
+
# Hack Club AI (REQUIRED)
+
HACKAI_API_KEY=your_api_key_here
+
HACKAI_MODEL=moonshotai/kimi-k2-0905
+
HACKAI_CLASSIFIER_MODEL=google/gemini-2.0-flash-exp
+
HACKAI_URL=https://ai.hackclub.com/proxy/v1/chat/completions
+
HACKAI_TIMEOUT=20
+
HACKAI_CLASSIFIER_TIMEOUT=5
+
+
# Bot Behavior
+
MAX_PRIVMSG_LEN=400
+
RATE_LIMIT_SECONDS=1.2
+
TRANSCRIPT_MAX_TURNS=30
+
JOIN_GREET_CHANCE=0.15
+
RANDOM_CHIME_IN_CHANCE=0.05
+
LISTEN_AND_DECIDE_CHANCE=0.25
+
USE_CLASSIFIER=1
+
MEMORY_FILE=tacy_memory.json
+
```
+
+
If you want to report an issue the main repo is [the tangled repo](https://tangled.org/dunkirk.sh/tacy-irc-bot) and the github is just a mirror.
+
+
<p align="center">
+
<img src="https://raw.githubusercontent.com/taciturnaxolotl/carriage/master/.github/images/line-break.svg" />
+
</p>
+
+
<p align="center">
+
&copy 2025-present <a href="https://github.com/taciturnaxolotl">Kieran Klukas</a>
+
</p>
+
+
<p align="center">
+
<a href="https://github.com/taciturnaxolotl/tacy-irc-bot/blob/main/LICENSE.md"><img src="https://img.shields.io/static/v1.svg?style=for-the-badge&label=License&message=MIT&logoColor=d9e0ee&colorA=363a4f&colorB=b7bdf8"/></a>
+
</p>