Skip to main content

Pitwall 🏁

The agentic AI companion to MultiViewer, the best app to watch motorsports

Pitwall transforms your motorsport viewing experience by augmenting MultiViewer with an agentic intelligence you can interrogate over the course of a racing session.

CI Python License Tests Coverage

Key Features

  • 💬 Conversational Interface: Ask questions, request specific views, or let Pitwall decide what to show
  • 🤖 AI-Powered Feed Management: A conversational interface to control driver onboards, broadcast feeds, and more.
  • 🏎️ Racing Intelligence: Pit strategy, race control interpretation, and more.
  • 🧠 Session Memory: Remembers context and preferences throughout your viewing session
  • 🌐 Multi-Series Support: Works with all motorsports series that MultiViewer supports
  • OpenRouter Powered: Use any of the thousands of LLMs on OpenRouter

Quick Start

Prerequisites

  • Python 3.10 or higher
  • MultiViewer installed and running
  • A streaming subscription for the motorsport series you wish to watch.
  • OpenRouter API key for AI model access

Installation

pip install pitwall

Basic Usage

  1. Start MultiViewer and ensure it's running on your system
  2. Set your API key:
    export OPENROUTER_API_KEY="your-openrouter-api-key"
    
  3. Launch Pitwall:
    pitwall
    

Available Commands

Main Commands

  • pitwall - Start interactive chat mode (default)
  • pitwall quick <query> - Quick analysis for simple queries
  • pitwall models - Show available model shortcuts
  • pitwall memory - Memory management commands
  • pitwall --version - Show version information

Memory Commands

  • pitwall memory list - List all conversation sessions
  • pitwall memory show <session-id> - Show details of a specific session
  • pitwall memory export <session-id> - Export session to JSON file
  • pitwall memory delete <session-id> - Delete a specific session
  • pitwall memory clear - Clear all sessions

Example Commands

# Quick analysis of current session
pitwall quick "What's the current battle for the lead?"

# Start interactive chat mode (default command)
pitwall

# Use a specific AI model
pitwall --model claude-sonnet

# Connect to remote MultiViewer instance
pitwall --url http://remote-server:10101/graphql

# Check available models
pitwall models

# Resume a previous session
pitwall --session your-session-id

# Quick analysis with specific model
pitwall quick "Who's leading?" --model gpt-41

# Quick analysis with remote MultiViewer
pitwall quick "Current standings" --url http://remote-server:10101/graphql

Configuration

Environment Variables

# Required: OpenRouter API key for AI models
export OPENROUTER_API_KEY="your-key-here"

CLI Options

# Core options available for all commands
--model, -m     # AI model to use (see Model Options below)
--verbose, -v   # Enable verbose output
--session, -s   # Resume a specific conversation session
--url, -u       # MultiViewer instance URL (default: http://localhost:10101/graphql)
--version       # Show version information

Model Options

Pitwall supports various AI models through OpenRouter:

  • claude-sonnet: Anthropic Claude Sonnet 4 (recommended)
  • claude-opus: Anthropic Claude Opus 4 (premium)
  • gpt-41: OpenAI GPT-4.1
  • gpt-41-mini: OpenAI GPT-4.1 Mini
  • gemini-pro: Google Gemini 2.5 Pro Preview
  • gemini-flash: Google Gemini 2.5 Flash Preview
  • llama: Meta Llama 4 Maverick
  • llama-free: Meta Llama 4 Maverick (free tier)
  • deepseek: DeepSeek R1

You can also use any full OpenRouter model name directly.

Advanced Features

Remote MultiViewer Connections

Pitwall connects to MultiViewer instances using the --url option (defaults to localhost):

# Connect to a remote MultiViewer instance
pitwall --url http://192.168.1.100:10101/graphql

# Quick analysis with remote instance
pitwall quick "Current race status" --url http://remote-server:10101/graphql

# Use specific model with remote instance
pitwall --model claude-opus --url http://remote-server:10101/graphql

# Default behavior (connects to localhost)
pitwall

This is useful when:

  • Running MultiViewer on a different machine
  • Accessing a shared MultiViewer instance
  • Using Pitwall from a remote location

Session Memory

Pitwall remembers your viewing sessions:

# List previous sessions
pitwall memory list

# Show details of a specific session
pitwall memory show abc123

# Resume a specific session
pitwall --session abc123

# Export session data
pitwall memory export abc123 --output session.json

# Delete a session
pitwall memory delete abc123

# Clear all sessions
pitwall memory clear

Development

Local Development

# Clone the repository
git clone https://github.com/RobSpectre/pitwall.git
cd pitwall

# Install in development mode
pip install -e .[dev]

# Run tests
pytest

# Run linting and formatting
black .
flake8
mypy .

# Run tests with coverage
pytest --cov

# Run tests across multiple Python versions
tox

Testing

# Run all tests
pytest

# Run with coverage
pytest --cov

# Run specific test files
pytest tests/test_cli.py
pytest tests/test_memory.py
pytest tests/test_pitwall.py

# Run tests with verbose output
pytest -v

# Run across multiple Python versions
tox

# Run specific tox environments
tox -e py310
tox -e py311
tox -e py312
tox -e lint
tox -e type-check

Architecture

Pitwall is built with a modular architecture:

pitwall/
├── cli.py          # Command-line interface
├── pitwall.py      # Core AI agent logic
├── memory.py       # Session management
├── prompts.py      # AI prompt templates
└── __init__.py     # Package initialization

License

This project is licensed under the MIT License - see the LICENSE file for details.

Meta

  • Vibe-coded by Rob Spectre
  • Released under MIT License
  • Software is as is - no warranty expressed or implied, diggity.
  • This package is not developed or maintained by MultiViewer or any racing series
  • 🏎️ Go Weeyums! 🏎️

Acknowledgements

  • MultiViewer for the incredible motorsport viewing platform
  • mvf1 for MultiViewer MCP support
  • PydanticAI for the AI agent framework

Release files for pitwall 0.2.2

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for pitwall 0.2.2
File Size Uploaded
pitwall-0.2.2.tar.gz 27.2 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for pitwall 0.2.2
File Interpreter ABI Platform
pitwall-0.2.2-py3-none-any.whl Python 3 none any Details

Total release size: 47.8 kB

Release files / pitwall-0.2.2.tar.gz

Download URL pitwall-0.2.2.tar.gz
Size 27.2 kB
Tags Source
SHA-256 checksum
How to use checksums
8390017a8a3ab3e800c5d2a0fafa235b1876315ec87a121bd4b2965a70142b8d
BLAKE2b-256 checksum
How to use checksums
c89a0777b78d12c63ab2afa49816a16c929dbf08c26748954efb536f78f1dca7
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/6.1.0 CPython/3.13.7

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Oct 19, 2025.

Transparency log

Release files / pitwall-0.2.2-py3-none-any.whl

Download URL pitwall-0.2.2-py3-none-any.whl
Size 20.6 kB
Tags Python 3
SHA-256 checksum
How to use checksums
f943405ee876730cb597688c3897603b7aebad7f151de37fa5cd2889171ca4d7
BLAKE2b-256 checksum
How to use checksums
93f7332073fdbb57bef8bae5ad818032caa678894a335abef4d3e9f5ad8ec137
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/6.1.0 CPython/3.13.7

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Oct 19, 2025.

Transparency log

Release history Release notifications | RSS feed

This release

0.2.2 This release

2 release files

0.2.1

2 release files

0.2.0

2 release files

0.1.1

2 release files

0.1.0

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page