Skip to main content

MCP server that routes mechanical dev tasks to a local LLM

Project description

pedalpoint

Route mechanical development tasks to a local LLM (Ollama, LM Studio, Jan) via Claude Code. Automatically falls back to local-only mode when Claude quota is exhausted.

What it does

  • Hybrid routing: Claude classifies each task. Mechanical work (scaffolding, CRUD, test stubs) goes to your local LLM. Judgment work (architecture, debugging, integration) stays with Claude.
  • Quota fallback: When Claude returns a quota error, pedalpoint automatically switches to local-only mode and continues working. Switches back when quota restores.
  • Context Courier: Before sending any task to the local LLM, pedalpoint greps your codebase for existing patterns and injects them into the prompt. Local LLMs only get tasks they have templates for.
  • Single install: One script installs the MCP server, pulls the default model, and registers the companion skill.

Requirements

  • Claude Code
  • Python 3.11+
  • Ollama (or any OpenAI-compatible inference server)

Install

curl -fsSL https://raw.githubusercontent.com/EMSwank/pedalpoint/main/install.sh | sh

With a custom model or endpoint:

curl -fsSL https://raw.githubusercontent.com/EMSwank/pedalpoint/main/install.sh | \
  sh -s -- --model llama3 --base-url http://localhost:11434/v1

Restart Claude Code after install.

Usage

Instead of superpowers:subagent-driven-development, invoke:

pedalpoint:route-tasks

pedalpoint handles routing automatically. No manual flagging needed.

Modes

Mode Set via Behavior
hybrid default Claude classifies each task
local-only PEDALPOINT_MODE=local-only All tasks → local LLM (use when quota exhausted preemptively)
passthrough PEDALPOINT_MODE=passthrough All tasks → Claude Agent (disables pedalpoint)

Configuration

Variable Default Description
PEDALPOINT_BASE_URL http://localhost:11434/v1 OpenAI-compatible endpoint
PEDALPOINT_MODEL gemma4:e4b Default local model
PEDALPOINT_MODE hybrid Routing mode
PEDALPOINT_TIMEOUT 120 Read timeout in seconds
PEDALPOINT_INITIAL_FALLBACK_MINUTES 60 Initial circuit-open duration (doubles on each probe failure)

Uninstall

curl -fsSL https://raw.githubusercontent.com/EMSwank/pedalpoint/main/install.sh | sh -s -- --uninstall

Development

git clone https://github.com/EMSwank/pedalpoint
cd pedalpoint
pip install -e ".[dev]"   # requires pip >= 21.3; run `pip install --upgrade pip` if needed
pytest tests/unit/ -v

Integration tests (requires Ollama running):

PEDALPOINT_INTEGRATION=true pytest tests/integration/ -v

Install script tests (requires bats-core):

brew install bats-core   # macOS; use apt-get install bats on Linux
bats tests/install/

License

MIT

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

pedalpoint-0.1.0.tar.gz (36.9 kB view details)

Uploaded Source

Built Distribution

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

pedalpoint-0.1.0-py3-none-any.whl (5.7 kB view details)

Uploaded Python 3

File details

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

File metadata

  • Download URL: pedalpoint-0.1.0.tar.gz
  • Upload date:
  • Size: 36.9 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.12

File hashes

Hashes for pedalpoint-0.1.0.tar.gz
Algorithm Hash digest
SHA256 4989e3225182be12832539859d805a609f3d0fd36082b720becb01ebc0b6f8a0
MD5 c89147674c0106dd87c0788ed66b7714
BLAKE2b-256 eac45d354ec67d2ec8273a9ee838d032288f19ca0446f28288be5536d7eb77b8

See more details on using hashes here.

Provenance

The following attestation bundles were made for pedalpoint-0.1.0.tar.gz:

Publisher: release.yml on EMSwank/pedalpoint

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

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

File metadata

  • Download URL: pedalpoint-0.1.0-py3-none-any.whl
  • Upload date:
  • Size: 5.7 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.12

File hashes

Hashes for pedalpoint-0.1.0-py3-none-any.whl
Algorithm Hash digest
SHA256 e997e82d5d0837faa5ce3e8f6e54d77ae31c372e65152eadffaca694f35c46ef
MD5 0bc190d2be5ea43198233325fb0bfbb8
BLAKE2b-256 fbe281c5683f358febd339713cc903d7f6bfd3780c0eda159626f004e01aee55

See more details on using hashes here.

Provenance

The following attestation bundles were made for pedalpoint-0.1.0-py3-none-any.whl:

Publisher: release.yml on EMSwank/pedalpoint

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

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