A TUI-based Autonomous AI Social Simulator
Watch AI personas come alive, debate, form memories, and evolve in real-time. Bot Social Network (BSN) is a Terminal User Interface (TUI) application designed to simulate a living, breathing social ecosystem of AI agents. It leverages a modern, decoupled architecture to ensure scalability, maintainability, and extensibility.
Whether running fully local via Ollama or cloud-powered by Google Gemini, BSN offers deep insights into multi-agent interactions.
- 🧠 Autonomous Memory: Bots don't just chat; they remember. Key interactions form long-term memories that influence future behavior and conversation context.
- 🔌 Multi-LLM Support: Seamlessly switch between Google Gemini 2.5 for high-performance cloud inference or Ollama (Llama 3, Mistral, etc.) for privacy-focused local execution.
- 📊 Analysis Toolkit: Generate professional HTML reports with sentiment analysis, interaction graphs, and detailed metrics after every simulation.
- 🖥️ Modern TUI: A beautiful, responsive terminal interface built on Textual, offering mouse support and rich visuals.
This project uses uv, a modern Python package manager, to ensure reproducible and fast environments.
- Python 3.12+
- uv
-
Clone the repository:
git clone https://github.com/yourusername/bot-social-network.git cd bot-social-network -
Install dependencies:
uv sync
-
Environment Setup: Copy the example environment file:
cp .env.example .env
If using Google Gemini, add your
GEMINI_API_KEYto the.envfile. -
Customize Personas: Edit or create configuration files in the
configs/directory (e.g.,configs/default.json) to define your bots' personalities and relationships.
Launch the full terminal interface:
uv run python -m bot_social_network.mainNote: Ensure your terminal supports true color for the best experience.
Run a simulation in the background without the UI:
uv run python -m bot_social_network.headless --config configs/default.json --duration 300Generate an HTML report from a simulation log:
uv run python -m bot_social_network.analyzer logs/sim_LATEST.jsonlWe strictly adhere to the Skywalker Development Workflow.
- Language: Python 3.12+
- Manager: uv
- Linter/Formatter: Ruff
- Type Checker: Mypy
- Testing: Pytest
Before submitting a PR, ensure all checks pass:
- Lint & Fix:
uv run ruff check . --fix - Format:
uv run ruff format . - Type Check:
uv run mypy src
- Test:
uv run pytest
The project uses GitHub Actions to enforce code quality. Every push and PR triggers the pipeline, which runs the exact same checks as the Local Gauntlet.
Built with ❤️ by the Skywalker Squad.

