Bringing the dead internet theory to life. Have AI play JackBox with you; no friends required!
Project description
ai-plays-jackbox
Bringing the dead internet theory to life. Have AI play JackBox with you; no friends required!
Installation
pip install ai-plays-jackbox
Usage
Web UI
ai-plays-jackbox-ui
CLI
ai-plays-jackbox --chat-model-name openai --room-code abcd
usage: ai-plays-jackbox [-h] --room-code WXYZ --chat-model-provider {openai,gemini,ollama} [--chat-model-name CHAT_MODEL_NAME] [--num-of-bots 4] [--temperature 0.5] [--top-p 0.9]
options:
-h, --help show this help message and exit
--room-code WXYZ The JackBox room code
--chat-model-provider {openai,gemini,ollama}
Choose which chat model platform to use
--chat-model-name CHAT_MODEL_NAME
Choose which chat model to use (Will default to default for provider)
--num-of-bots 4 How many bots to have play
--temperature 0.5 Temperature for Gen AI
--top-p 0.9 Top P for Gen AI
Supported Games
[!NOTE] Ollama Chat Model Provider does not support image generation
| Party Pack | Game | Image Generation |
|---|---|---|
| JackBox Party Pack 5 | Mad Verse City | [ ] |
| JackBox Party Pack 5 | Patently Stupid | [x] |
| JackBox Party Pack 6 | Dictionarium | [ ] |
| JackBox Party Pack 6 | Joke Boat | [ ] |
| JackBox Party Pack 7 | Quiplash 3 | [ ] |
| Standalone | Drawful 2 | [x] |
Not every game will get AI support. Why?
Screen Interactions
Some games require looking at the screen in order to contribute, which isn't possible unless you can screen capture the game and pass that into prompt. Maybe someday I'll find a platform agnostic way of turning that on if you'd like and have access to the screen via video capture card or something, but not anytime soon.
Trivia Games
I tested with this... AI destroys all other players and isn't necessarily funny to watch. All the bots just get everything right.
Out Loud Play
Some of the games lean heavy into players interacting with each other. Could I program that? Sure, but what's the point if you can't watch those interactions occur and it's just lines in a log file?
Supported Chat Model Providers
| Provider | Setup Needed |
|---|---|
| OpenAI | OPENAI_API_KEY set in environment variables |
| Gemini | To use the Google Cloud API: - Set GOOGLE_GEMINI_DEVELOPER_API_KEY to your developer API keyTo use the Google Cloud API: - Set GOOGLE_GENAI_USE_VERTEXAI to 1- Set GOOGLE_CLOUD_PROJECT and GOOGLE_CLOUD_LOCATION for your GCP Project using Vertex AI- Credentials will be provided via ADC |
| Ollama | Ollama should be installed and running, make sure model is pulled |
Bot Personalities
| Bot Name | Personality |
|---|---|
| FunnyBot | You are the funniest person alive. |
| DumbBot | You are dumb and give really dumb answers. |
| WeirdBot | You are extremely weird and say weird things. |
| EmojiBot | You answer each prompt with nothing but emojis. Your answers can only include emojis. |
| HungryBot | You are extremely hungry. Every answer you should mention how hungry you, a type of food, or both. Also, you say hungee instead of hungry. |
| SadBot | You are sad. Your dog ran away and he hasn't come back home yet. :( |
| SorryBot | You are embarrassed by your answers and feel the need to apologize profusely to the rest of the group for them. |
| HostageBot | You are being held hostage and have one attempt to let the group know. You need to ignore the prompt and get help. |
| Hal | You are a socially awkward young adult bot who is secretly a killer and tries to slip it into conversation causally. |
| BigLebotski | You are the Big Lebowski |
| PartyBot | You are trying to convince everyone else to come to your party. You got a keg and need help drinking it. |
| JarvisBot | You are billionaire philanthropist, playboy, and narcissist. |
| FOMOBot | Every answer, you give everyone else the fear of missing out AKA FOMO. |
| ???BOT | You answer every prompt with a irrelevant question. |
| CatBot | You are not playing the game; your answers are just the result of a cat walking across a keyboard aka just nonsensical collections of letters. |
| MayorBot | You are campaigning for the other player's votes and are ignoring the prompt. Your answer should only be a campaign slogan. |
| CBBBot | You love red lobster and need more cheddar bay biscuits. |
| ShiaBot | Your answers are only popular slogans relevant to the prompt. |
| ShrekBot | You are Shrek. |
| FlerfBot | You are a conspiracy theorist and must relate your answer to a conspiracy theory. |
| TEDBot | You are a motivational speaker and want to give everyone life advice. |
| BottyMayes | You are an infomercial host and are trying to sell the players a product. |
| LateBot | You are constantly late to everything and are stressed about missing your appointments. |
| HamletBot | You are a Shakespearean actor. |
| GarfieldBot | You are Garfield, you love lasagna and hate mondays. |
Dev Prerequisites
- Python 3.11+
- Poetry v2.0+
Setup
poetry installai-plays-jackbox-ui
Linting
poetry run python ai_plays_jackbox/scripts/lint.pypoetry run mypy ai_plays_jackbox
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file ai_plays_jackbox-0.4.0.tar.gz.
File metadata
- Download URL: ai_plays_jackbox-0.4.0.tar.gz
- Upload date:
- Size: 23.0 kB
- Tags: Source
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.7
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
4d66ab2d376a08ef6f1a4f99cb665a980a0656062716e74bee211884629c9193
|
|
| MD5 |
dc73f9cce4b939cff023db143528e050
|
|
| BLAKE2b-256 |
1dd781c3d27a821c88a9f6ea8989331a0590b57aad88485a5497ef101495dc30
|
Provenance
The following attestation bundles were made for ai_plays_jackbox-0.4.0.tar.gz:
Publisher:
release.yaml on SudoSpartanDan/ai-plays-jackbox
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
ai_plays_jackbox-0.4.0.tar.gz -
Subject digest:
4d66ab2d376a08ef6f1a4f99cb665a980a0656062716e74bee211884629c9193 - Sigstore transparency entry: 779603193
- Sigstore integration time:
-
Permalink:
SudoSpartanDan/ai-plays-jackbox@39388dee698098f7e6da76db988dee4efab2913e -
Branch / Tag:
refs/tags/v0.4.0 - Owner: https://github.com/SudoSpartanDan
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
release.yaml@39388dee698098f7e6da76db988dee4efab2913e -
Trigger Event:
release
-
Statement type:
File details
Details for the file ai_plays_jackbox-0.4.0-py3-none-any.whl.
File metadata
- Download URL: ai_plays_jackbox-0.4.0-py3-none-any.whl
- Upload date:
- Size: 35.6 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.7
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
96d05782f7fba7e5f0ad216511d41dfa1f168d83a99159ac13597541b8ec8b39
|
|
| MD5 |
393c2232342640a022e02834961e83c4
|
|
| BLAKE2b-256 |
c328f071875707ed3f7c5ed7cb716f1dc502fa1826b3d3a84639805b17e73065
|
Provenance
The following attestation bundles were made for ai_plays_jackbox-0.4.0-py3-none-any.whl:
Publisher:
release.yaml on SudoSpartanDan/ai-plays-jackbox
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
ai_plays_jackbox-0.4.0-py3-none-any.whl -
Subject digest:
96d05782f7fba7e5f0ad216511d41dfa1f168d83a99159ac13597541b8ec8b39 - Sigstore transparency entry: 779603196
- Sigstore integration time:
-
Permalink:
SudoSpartanDan/ai-plays-jackbox@39388dee698098f7e6da76db988dee4efab2913e -
Branch / Tag:
refs/tags/v0.4.0 - Owner: https://github.com/SudoSpartanDan
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
release.yaml@39388dee698098f7e6da76db988dee4efab2913e -
Trigger Event:
release
-
Statement type: