Skip to main content

A multi-AI terminal chatroom powered by local models via Ollama.

Project description

NodeRoom

NodeRoom is a terminal-based multi-AI chatroom built for Ollama. Create custom AI nodes, chat with them one-on-one or together in different flow modes, and even enable voice replies with pyttsx3!


🚀 Features

  • Create custom AI nodes with unique prompts and models.
  • Multi-node conversations in two styles:
    • Classic Duel: each AI replies to the user one after another.
    • Talking Freely: one AI replies, then the next AI responds to the first.
  • Add or remove active nodes in your current chat session at any time.
  • Streamed responses for real-time AI replies.
  • Color-coded AI messages for clarity and fun.
  • Voice support via pyttsx3 (--voice flag).
  • Node voting logic (placeholder): simulate nodes deciding who should respond.
  • Persistent node storage in nodes.json.
  • Simple command interface with helpful /help.

🛠 Requirements

  • Python 3.7+
  • Ollama running locally on http://localhost:11434
  • Optional:
    • pyttsx3 for voice output (pip install pyttsx3)

🧠 Usage

python noderoom.py [--voice]

Then use in-terminal commands to interact:

🔧 Commands

Command Description
/create Create a new AI node
/list List all saved nodes
/active Show currently active nodes
/add <name> Add a saved node to the current chat session
/remove <name> Remove a node from the current chat session
/ask <name> <question> Ask a specific node a question
/flow <1 or 3> Set conversation mode: 1 = Classic Duel, 3 = Talking Freely
/delete <name> Delete a node permanently
/help Show the tutorial/help screen
/quit Exit the chatroom

💡 Example Flow

> /create
Enter node name (unique): Byte
Enter prompt for this node: You're a helpful assistant who always answers concisely.
Enter model for this node (default 'phi'):

> /add Byte
Node 'Byte' added to active chat session.

> Hello, Byte!
[Byte] (model: phi) says:
Hi there! How can I help?

🗣 Voice Mode

Run with --voice to enable text-to-speech output (requires pyttsx3):

python noderoom.py --voice

💾 Node Storage

Nodes are saved in nodes.json in the same directory. You can back this up or edit it manually if needed.


🧪 Flow Modes

0️⃣ Default

Similar to Classic Duel, but nodes are unaware of eachother. Good for comparisons.

1️⃣ Classic Duel

Every active AI node replies to the user's message in order.

2️⃣ Coming Soon...

3️⃣ Talking Freely

  • User says something
  • Node A responds
  • Node B responds to Node A
  • (Back to user)

Great for 2-node debates or collaborative AI creativity!


📦 License

MIT License — do what you want, just don’t blame me if your AI becomes self-aware.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

noderoom-0.1.0.tar.gz (6.6 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

noderoom-0.1.0-py3-none-any.whl (7.1 kB view details)

Uploaded Python 3

File details

Details for the file noderoom-0.1.0.tar.gz.

File metadata

  • Download URL: noderoom-0.1.0.tar.gz
  • Upload date:
  • Size: 6.6 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.12.10

File hashes

Hashes for noderoom-0.1.0.tar.gz
Algorithm Hash digest
SHA256 c5ec223c86581e9d5927be8ad58f171c84413f929506ad401eaff7e177db9635
MD5 59ee379e113d0611fd7c12897484d172
BLAKE2b-256 153720715d2124a1955af945eff27705aae06fc306c55b683ad50c161f55dfae

See more details on using hashes here.

File details

Details for the file noderoom-0.1.0-py3-none-any.whl.

File metadata

  • Download URL: noderoom-0.1.0-py3-none-any.whl
  • Upload date:
  • Size: 7.1 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.12.10

File hashes

Hashes for noderoom-0.1.0-py3-none-any.whl
Algorithm Hash digest
SHA256 bde813978c637a0f658566300026de4b2d19d5ea4c20f0c5b9b2f3e1891d43bd
MD5 743caf0c2e46becd245d8c98cce1eeff
BLAKE2b-256 6c754b39fe55747e905c45bb14f02d8a568260a00b5f55060b0e408133f2feb8

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page