Skip to main content
OpenReflex

OpenReflex: muscle memory for AI coding agents

Website · GitHub · PyPI · Issues · Buy me a coffee

PyPI Python CI License


What is OpenReflex

OpenReflex gives AI coding agents muscle memory. It plugs into Claude Code, Codex, Cursor, and OpenCode through lifecycle hooks and MCP, quietly records how each task actually went, and hands the next similar task what worked before: the approach, the files that mattered, and the fix for the error you hit last time.

You install it once and keep working normally. Everything stays on your machine in a local SQLite database. There is no account, no service, and no telemetry.

Why OpenReflex

  • It remembers what worked. Before a substantial task, OpenReflex retrieves similar past tasks and injects a compact Execution Context: a suggested approach with alternatives, the files that were changed, and lessons such as which edit resolved a recurring error.
  • It catches loops while they happen. Repeated failing commands, identical retries, stalled progress, and runaway context growth raise a single, specific alert with an alternative path, never a stream of nags.
  • It learns after every task. OpenReflex infers the outcome from real verification (a test or build that passed or failed after the last edit), estimates Execution Regret against the alternatives, and extracts lessons.
  • It is private by design. Only coarse, project-relative metadata is stored. File contents, commands, tool output, and transcripts never are, and capture is off until you approve a project.
        before a task                  during a task                 after a task
  ┌──────────────────────┐    ┌──────────────────────────┐    ┌───────────────────────┐
  │ retrieve experience  │    │ watch tool calls         │    │ infer outcome         │
  │ score candidate paths│ →  │ flag loops and stalls    │ →  │ estimate regret       │
  │ inject context       │    │ suggest an alternative   │    │ extract lessons       │
  └──────────────────────┘    └──────────────────────────┘    └───────────────────────┘
                 ▲                                                        │
                 └──────────────────── Experience Graph ◄─────────────────┘

Quick start

Requires Python 3.11 or newer.

pipx install openreflex            # or: uv tool install openreflex
cd your-project
openreflex install claude-code     # writes hooks + MCP config and enables this project

Then work as usual. After a few tasks:

openreflex context "fix the login redirect bug"   # preview the context a task would receive
openreflex status                                 # what has been captured and learned
openreflex doctor                                 # installation checks and recent hook errors

Use it with your agent

OpenReflex installs per project with openreflex install <agent>, or as a plugin.

Claude Code
Plugin or hooks + MCP
Codex
Plugin or hooks + MCP
Cursor
Hooks + MCP
OpenCode
Plugin + MCP
Agent Install
Claude Code claude plugin marketplace add vishnu-77/openreflex and claude plugin install openreflex@openreflex, or openreflex install claude-code
Codex codex plugin marketplace add vishnu-77/openreflex, or openreflex install codex, then trust the hooks once in /hooks
Cursor openreflex install cursor
OpenCode openreflex install opencode

With a plugin install, enable each project with openreflex approve. Claude Code and Codex are verified in live sessions; the Cursor and OpenCode integrations follow each agent's documented hook protocol.

How it works

Hooks send lifecycle events (prompt, tool start, tool end, compaction, stop) to the OpenReflex engine, which stores them in an Experience Graph:

Task -caused-> Execution -used-> Context -used-> Experience
CandidatePath -recommended_for-> Task            Lesson -recommended_for-> Task
Execution -failed_with-> ToolCall -resolved_by-> ToolCall
Execution -caused-> Outcome -caused-> Experience -caused-> Lesson
  • Before a task: similar experiences are retrieved and three strategies (inspect-first, test-first, incremental) are estimated on success probability, time, tool calls, context cost, risk, uncertainty, reversibility, and expected regret. Strategies that another one beats on every measure are dropped as dominated (Pareto efficiency), the rest are ranked by utility within any limits you set, and the chosen path gets an execution budget for time, tool calls, and context. A context of at most 1,400 characters is injected; nothing is injected without relevant experience.
  • During a task: when a detector finds a failure loop, repeated calls, stalled progress, context growth, or work past the budget, OpenReflex estimates the marginal value of more work. The current path's success estimate is updated with each call that makes no progress or fails, and compared with the cost of the work left and with the best untried alternative. The alert ends with a recommendation to continue, pivot to another strategy, or stop and ask the user. Each problem, pivot, or stop is raised once, with a cooldown between messages.
  • After a task: outcome and chosen path come from the agent's record_outcome / choose_path MCP calls when available, and are otherwise inferred from tool activity. Execution Regret compares the path taken with the best plausible alternative; it is withheld when the outcome is unknown, and feeds back into how strategies are ranked next time, along with success, cost, and how often a strategy ran into trouble.

Set optional limits for every task with OPENREFLEX_BUDGET, for example calls=40,minutes=20,tokens=60000.

Agents can also query OpenReflex directly through its MCP server: get_execution_context (optionally with max_tool_calls, max_minutes, max_context_tokens), choose_path, check_progress, record_outcome, search_experience, explain_node, project_insights, and approve_project.

CLI

Command Purpose
install <agent> [--dry-run] Write project hooks and MCP config, and enable the project
approve / revoke Enable or disable capture for the current project
context "<task>" Preview the Execution Context a task would receive
status [--json] What has been captured, reused, and learned
doctor Installation checks and recent hook errors
forget --yes Delete the project's data
benchmark Run the simulated benchmark
hook <agent> <event> / mcp Used by agent configs

Privacy

  • Stored per tool call: tool name, a coarse category (read, edit, search, test, ...), a fingerprint of the arguments, project-relative file paths, status, duration, output size, and a masked one-line error signature.
  • Never stored: file contents, command text, tool output, transcripts, or paths outside the project.
  • Prompts are kept as task descriptions (up to 1,000 characters) with secrets such as API keys and tokens redacted.
  • Data lives in ~/.openreflex/projects/<hash>/experience.sqlite3. Set OPENREFLEX_HOME to move it, OPENREFLEX_DISABLE=1 to turn capture off everywhere, or run openreflex forget --yes to delete a project's data.

Community & Contributing

  • Issues and ideas: GitHub Issues

  • Support the project: Buy me a coffee

  • Develop locally:

    git clone https://github.com/vishnu-77/openreflex && cd openreflex
    pip install -e ".[dev]"
    pytest && ruff check src tests scripts
    
Contributors

License

OpenReflex is released under the MIT License.

Release files for openreflex 0.2.0

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

Source distribution (sdist)

Source distribution for openreflex 0.2.0
File Size Uploaded
openreflex-0.2.0.tar.gz 66.1 kB Details

Built distribution (wheel)

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

Total release size: 123.0 kB

Release files / openreflex-0.2.0.tar.gz

Download URL openreflex-0.2.0.tar.gz
Size 66.1 kB
Tags Source
SHA-256 checksum
How to use checksums
0610e9afe334d309a481609bab092340bd8608188fbadcd38a469c6125997df1
BLAKE2b-256 checksum
How to use checksums
29c36098e284691c997a4397832ee1b8b403a0e15dd0bec97abbc0bec3a1a835
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

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 Sep 14, 2026.

Transparency log

Release files / openreflex-0.2.0-py3-none-any.whl

Download URL openreflex-0.2.0-py3-none-any.whl
Size 57.0 kB
Tags Python 3
SHA-256 checksum
How to use checksums
f832b2cd9d43531c36a2b1b839a66a028c66fcffd0d6c5efc563428666734389
BLAKE2b-256 checksum
How to use checksums
df06b1fed949b2562a8a6b521ee6124c0c6937e3a46cbb85758d8fe0997660da
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

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 Sep 14, 2026.

Transparency log

Release history Release notifications | RSS feed

0.9.10

2 release files

0.9.9

2 release files

0.9.8

2 release files

0.9.7

2 release files

0.9.6

2 release files

0.9.5

2 release files

0.9.4

2 release files

0.9.3

2 release files

0.9.2

2 release files

0.9.1

2 release files

0.9.0

2 release files

0.8.1

2 release files

0.8.0

2 release files

0.7.0

2 release files

0.5.3

2 release files

0.5.2

2 release files

0.5.1

2 release files

0.5.0

2 release files

0.3.2

2 release files

0.3.1

2 release files

0.3.0

2 release files

This release

0.2.0 This release

2 release files

0.1.3

2 release files

0.1.2

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