npm package discovery and stats viewer.

Discover Tips

  • General search

    [free text search, go nuts!]

  • Package details

    pkg:[package-name]

  • User packages

    @[username]

Sponsor

Optimize Toolset

I’ve always been into building performant and accessible sites, but lately I’ve been taking it extremely seriously. So much so that I’ve been building a tool to help me optimize and monitor the sites that I build to make sure that I’m making an attempt to offer the best experience to those who visit them. If you’re into performant, accessible and SEO friendly sites, you might like it too! You can check it out at Optimize Toolset.

About

Hi, 👋, I’m Ryan Hefner  and I built this site for me, and you! The goal of this site was to provide an easy way for me to check the stats on my npm packages, both for prioritizing issues and updates, and to give me a little kick in the pants to keep up on stuff.

As I was building it, I realized that I was actually using the tool to build the tool, and figured I might as well put this out there and hopefully others will find it to be a fast and useful way to search and browse npm packages as I have.

If you’re interested in other things I’m working on, follow me on Twitter or check out the open source projects I’ve been publishing on GitHub.

I am also working on a Twitter bot for this site to tweet the most popular, newest, random packages from npm. Please follow that account now and it will start sending out packages soon–ish.

Open Software & Tools

This site wouldn’t be possible without the immense generosity and tireless efforts from the people who make contributions to the world and share their work via open source initiatives. Thank you 🙏

© 2026 – Pkg Stats / Ryan Hefner

mrx-cli-varun

v0.1.0

Published

Multi-role model orchestration CLI — assign different LLMs to reasoning, execution, and tool-calling roles

Downloads

127

Readme

mrx

npm version CI License: MIT Node

Multi-role model orchestration CLI — assign different LLMs to reasoning, execution, and tool-calling roles in a single session.

Why mrx

  • Role separation: Use a powerful reasoning model for planning and a fast model for output — independently configurable
  • Provider-agnostic: OpenAI, Anthropic, Google, Ollama, LM Studio, OpenRouter all work out of the box
  • Zero lock-in: One YAML file controls everything; switch models or providers without changing any code

Quick Start

npm install -g mrx
mrx ask "explain recursion"

Or without installing:

npx mrx ask "explain recursion"

Installation

Global install:

npm install -g mrx

One-off via npx:

npx mrx ask "your prompt"

Local clone:

git clone https://github.com/Varun-SV/mrx.git
cd mrx
npm install
npm run dev -- ask "your prompt"

Configuration

Place mrx.config.yaml in your current directory or ~/.mrx/mrx.config.yaml.

default_mode: think_then_answer

session_memory: true
session_db_path: ~/.mrx/sessions.db

models:
  reasoner:
    provider: ollama
    model: qwen3:14b
    temperature: 0.6
    maxTokens: 8192

  executor:
    provider: openai
    model: gpt-4o-mini
    temperature: 0.7
    maxTokens: 4096

  # Optional dedicated tool-caller (falls back to executor)
  tool_caller:
    provider: openrouter
    model: google/gemini-flash-1.5
    temperature: 0.2

tools:
  shell: true
  file_system: true
  web_fetch: true

display:
  show_reasoning: false
  stream: true

See mrx.config.example.yaml for a fully annotated example.

Providers

| Provider | Env var | Notes | |---|---|---| | openai | OPENAI_API_KEY | | | anthropic | ANTHROPIC_API_KEY | | | google | GOOGLE_API_KEY | | | ollama | — | Requires ollama pull <model> locally | | lmstudio | — | Requires LM Studio server running on port 1234 | | openrouter | OPENROUTER_API_KEY | |

Override the API key per-model with apiKey: in the config.

Interaction Modes

think_then_answer (default)

Reasoner generates a chain-of-thought, then executor produces the final response using the reasoning as context. Best for complex questions needing careful analysis.

mrx ask "what are the tradeoffs between microservices and monoliths?"

planner_executor

Reasoner produces a numbered execution plan, then executor works through each step, and finally synthesizes the results. Best for multi-step tasks.

mrx ask "refactor this codebase to use async/await" --mode planner_executor

manual

You prefix messages with @reasoner, @executor, or @tool_caller to route to specific models. Defaults to executor.

mrx chat  # then type: @reasoner analyze this design

CLI Reference

| Command | Description | |---|---| | mrx ask <prompt> | One-shot prompt, prints response | | mrx chat | Start interactive TUI session | | mrx sessions | List saved sessions | | mrx check | Validate config |

| Flag | Description | |---|---| | -m, --mode <mode> | Interaction mode (think_then_answer, planner_executor, manual) | | -c, --config <path> | Path to config file | | --show-reasoning | Print reasoning trace (ask only) | | -s, --session <id> | Resume session by ID (chat only) |

TUI Keybindings

| Key | Action | |---|---| | Enter | Send message | | Ctrl+M | Cycle interaction mode | | Ctrl+R | Toggle reasoning display | | Ctrl+C | Quit |

Tools

| Tool | Description | |---|---| | run_shell | Executes a shell command. Only active when tools.shell: true. | | read_file | Reads a file (100 KB max). | | write_file | Writes a file, creating parent dirs. | | list_directory | Lists directory contents. | | web_fetch | Fetches a URL and returns plain text (50 KB max). |

Safety note: shell: true allows the model to run arbitrary commands. Only enable in trusted environments.

Session History

Enable with session_memory: true in config. Sessions are stored in SQLite at session_db_path.

mrx sessions                  # list sessions
mrx chat --session <id>       # resume a session

Contributing

See CONTRIBUTING.md.

License

MIT © Varun-SV