Skip to main content

Intelligent LLM Execution Layer for developer teams — anonymize code, route models, solve tickets.

Project description

prollama

Intelligent LLM Execution Layer for developer teams.

Anonymize code → route to the cheapest capable model → solve tickets autonomously.

CI Python 3.10+ License: Apache 2.0

AI Cost Tracking

AI Cost AI Model

This project uses AI-generated code. Total cost: $0.9000 with 6 AI commits.

Generated on 2026-04-02 using openrouter/qwen/qwen3-coder-next


Why prollama?

AI coding tools send your code — secrets, business logic, customer names — to cloud LLMs. prollama sits between your tools and the LLM, stripping sensitive data before it leaves your machine.

Three layers of anonymization:

  1. Regex — API keys, tokens, connection strings, emails, IPs (70+ patterns, <1ms)
  2. NLP — Person names in comments, addresses, SSNs (heuristic or Presidio, ~5ms)
  3. AST — Class/function/variable names via tree-sitter (business logic hidden, ~20ms)
# BEFORE (what you write)                    # AFTER (what the LLM sees)
class StripePaymentProcessor:                class Class_001:
    def charge_customer(self, amount):           def var_001(self, var_002):
        key = "sk_live_4eC39HqL..."                  key = "[SECRET_001]"
        return self.stripe.charge(amount)            return self.var_003.var_004(var_002)

After the LLM responds, prollama reverses the mapping and returns code with your original names.

Quick Start

pip install prollama

prollama init                    # Create config
prollama solve "Fix the TypeError in auth.py" --file src/auth.py --dry-run
prollama anonymize src/payment.py --level full
prollama shell                   # Interactive REPL

Installation

pip install prollama              # Core CLI + shell
pip install prollama[ast]         # + tree-sitter AST anonymization (recommended)
pip install prollama[proxy]       # + FastAPI proxy server
pip install prollama[nlp]         # + Presidio ML-based PII detection
pip install prollama[all]         # Everything
pip install prollama[dev]         # + pytest, ruff, mypy

Features

CLI

Command Description
prollama init Create config at ~/.prollama/config.yaml
prollama start Start OpenAI-compatible proxy with anonymization
prollama status Show config and provider status
prollama solve DESC Solve a coding task via LLM orchestration
prollama anonymize FILE Anonymize source code and show report
prollama config show Show full config as JSON
prollama shell Interactive REPL with tab-completion

Interactive Shell

$ prollama shell

╭─ prollama shell v0.1.0 ──────────────────────────────────╮
│ Privacy: full │ Routing: cost-optimized │ Providers: ollama│
│ Type help for commands or describe a task to solve it.    │
╰──────────────────────────────────────────────────────────╯

prollama ▸ Fix missing type hints in utils.py
  Task: Fix missing type hints in utils.py
  Type: fix  Complexity: simple  Model: qwen2.5-coder:7b
  Solving...
  ✓ Solved in 1 iter, 2.3s, $0.0000

prollama ▸ history
prollama ▸ models
prollama ▸ cost

Proxy Server

prollama start
export OPENAI_BASE_URL=http://localhost:8741/v1
# Now every request from any OpenAI-compatible tool is anonymized automatically

Endpoints: /v1/chat/completions, /v1/models, /v1/anonymize, /health, /metrics

Model Routing

Cost-optimized escalation: cheap model → mid → premium → top.

Tier Examples When
CHEAP qwen2.5-coder:7b (local) Typos, lint, formatting
MID qwen2.5-coder:32b, DeepSeek Bug fixes, error handling
PREMIUM GPT-4o-mini, Claude Haiku Refactors, new endpoints
TOP GPT-4o, Claude Sonnet Architecture, multi-file

~60-80% of tasks resolve on cheap models, keeping costs minimal.

Architecture

┌───────────────────────────────────────────────────┐
│                    prollama                        │
├──────────┬──────────────┬────────────┬────────────┤
│ Anonymizer│  Model Router │  Executor  │   Proxy    │
│ ┌────────┐│ ┌───────────┐│ ┌────────┐ │ ┌────────┐│
│ │ Regex  ││ │ Classify  ││ │ Solve  │ │ │ /v1/   ││
│ │ NLP    ││ │ Select    ││ │ Iterate│ │ │ chat/  ││
│ │ AST    ││ │ Escalate  ││ │ Test   │ │ │ compl. ││
│ └────────┘│ └───────────┘│ └────────┘ │ └────────┘│
└──────────┴──────────────┴────────────┴────────────┘
       ↕              ↕           ↕
   tree-sitter    LLM providers  pytest/ruff
   Presidio       (Ollama, OpenAI, Anthropic)

Docker

docker compose up -d    # prollama + Ollama

Development

git clone https://github.com/softreck/prollama.git
cd prollama
pip install -e ".[dev,ast]"
make test        # 124 tests
make lint        # ruff
make coverage    # pytest-cov
make check       # all of the above

Project Structure

prollama/
├── src/prollama/
│   ├── anonymizer/           # Three-layer anonymization pipeline
│   │   ├── regex_layer.py    # Layer 1: 70+ secret/PII patterns
│   │   ├── nlp_layer.py      # Layer 2: PII in comments (heuristic/Presidio)
│   │   ├── ast_layer.py      # Layer 3: tree-sitter identifier renaming
│   │   └── pipeline.py       # Orchestrator: regex → NLP → AST
│   ├── router/
│   │   └── model_router.py   # Cost-optimized model selection + escalation
│   ├── executor/
│   │   └── task_executor.py  # Full solve loop with test validation
│   ├── cli.py                # Click CLI (8 commands)
│   ├── shell.py              # Interactive REPL (prompt-toolkit)
│   ├── proxy.py              # FastAPI OpenAI-compatible proxy
│   ├── config.py             # YAML config with Pydantic
│   └── models.py             # Domain models and enums
├── tests/                    # 124 tests across 8 test files
├── examples/                 # Sample code + runnable scripts
├── docs/                     # Full documentation (10 pages)
├── .github/workflows/ci.yml  # CI: Python 3.10-3.13 matrix
├── Dockerfile                # Container image
├── docker-compose.yml        # prollama + Ollama
├── Makefile                  # Development commands
├── CHANGELOG.md
├── CONTRIBUTING.md
└── LICENSE                   # Apache 2.0

Part of the pyqual Ecosystem

prollama is the fix provider for pyqual quality gate loops.

# pyqual.yaml
stages:
  - name: fix
    provider: prollama
    strategy: auto
    when: metrics_fail

License

Licensed under Apache-2.0.

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

prollama-0.2.3.tar.gz (201.4 kB view details)

Uploaded Source

Built Distribution

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

prollama-0.2.3-py3-none-any.whl (40.6 kB view details)

Uploaded Python 3

File details

Details for the file prollama-0.2.3.tar.gz.

File metadata

  • Download URL: prollama-0.2.3.tar.gz
  • Upload date:
  • Size: 201.4 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.13.7

File hashes

Hashes for prollama-0.2.3.tar.gz
Algorithm Hash digest
SHA256 d7b7aad84ef3c760b36f1ccae512150b2146edd1d2d5456ece912d76019b6474
MD5 045235bb39184f231af5195e58d26e3e
BLAKE2b-256 72c220ccbf09b3592055a5a87556c82943363732fedd3d43fb6ae3ee69679c7b

See more details on using hashes here.

File details

Details for the file prollama-0.2.3-py3-none-any.whl.

File metadata

  • Download URL: prollama-0.2.3-py3-none-any.whl
  • Upload date:
  • Size: 40.6 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.13.7

File hashes

Hashes for prollama-0.2.3-py3-none-any.whl
Algorithm Hash digest
SHA256 dbcce62e36a352bfb8f3d3fd1f2bb5366e6d561c9048ff2540734061ef18cab3
MD5 cea7f9aef192335c429f319550bd5563
BLAKE2b-256 b99d5260337840f0eb9b6a79d05adcab04cbd3e58ca755e54237bfedb0baf961

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