
vardoger
io.github.dstruplPublished by GitHub account dstruplv0.4.0Updated Oct 27, 2026
Personalize AI coding assistants by analyzing local conversation history. Runs on your machine.
Overview
Local Python tool that reads your AI coding assistant's conversation history and generates a personalized rules file for that assistant.
- What you can do
- Read local conversation history from supported assistants (Cursor, Claude Code, Codex, OpenClaw, Copilot CLI, Devin, Windsurf, Cline) and extract behavioral patterns
- Generate a personalized system prompt addition and write it into the platform's native rules file
- Check whether a personalization is fresh or stale, and compare conversation-quality metrics before and after
- Record accept or reject feedback on the last generation, with reject reverting to the prior one
- List saved generations and compile selected ones into a portable AGENTS.md profile, previewing the diff before an explicit apply
- When to use it
- Useful if you want an assistant to adapt to your communication style, tech stack and workflow based on sessions you have already had, and you are willing to let the host model read those local transcripts. Best for users of one of the supported coding assistants who want a repeatable, reviewable personalization step.
- Requirements
- Runs as a local process installed from PyPI (pipx recommended); needs Python 3.11+ and a supported host assistant whose local history files exist. Optional VARDOGER_MCP_PLATFORM environment variable overrides the detected host platform. No account, API key or backend is required.
Installation
In SourceWeft
- Open vardoger in the dashboard and add it to a workspace.
- Enable the server for the chats that should use its tools.
Desktop only via STDIO. STDIO servers start a local process, so they need the SourceWeft desktop host.
Other MCP clients
Follow the launch instructions in the repository.
README
vardoger
A cross-platform plugin for AI coding assistants (Cursor, Claude Code, OpenAI Codex, OpenClaw, GitHub Copilot CLI, Devin Local, legacy Windsurf, and Cline) that reads supported local conversation-history formats, extracts behavioral patterns, and generates personalized system prompt additions — making the assistant progressively better suited to how you work. Current format limitations are called out per platform below rather than silently reading undocumented stores.
History discovery, parsing, checkpoints, and generated rules stay on your machine. Analysis is performed by the host assistant you invoke, so selected conversation excerpts follow that assistant and model provider's data policy. Vardoger operates no backend and sends no telemetry.
Prerequisites
Python 3.11+
pipx
Recommended for installing vardoger as an isolated CLI tool. Full instructions at pipx.pypa.io/stable/installation.
Quick Start
Then tell your assistant: "Personalize my assistant."
Looking for the in-app plugin listings? Track review status for each marketplace (PyPI, Cursor, Claude Code, Codex, Copilot CLI, Devin Desktop, Cline, ClawHub) in
MARKETPLACE_STATUS.md. Vardoger is currently live on PyPI, the Claude Code community catalog, self-hosted Codex and Copilot marketplaces, McpMux, and the Official MCP Registry. The former Cursor listing is currently unavailable. ClawHub has regressed to 0.3.1 and is intentionally frozen because its mandatory MIT-0 terms conflict with this Apache-2.0 project. Current OpenClaw history has a live-accepted, opt-in full-read Gateway CLI path through the direct install.
Previous pre-releases.
pipx install vardogernow resolves to the stable0.4.0release. The beta install paths below stay here for anyone still pinning an earlier release; new installs should not need them.
CLI Commands
How It Works
- Read — Parses supported conversation files already stored on disk, including opted-in Devin ATIF exports
- Analyze — The host AI model identifies patterns in your communication style, tech stack, workflow, and preferences
- Generate — Produces a system prompt addition tailored to you
- Deliver — Writes the addition to the platform's native config (
.cursor/rules/,.claude/rules/,AGENTS.md, etc.)
First run vs. incremental runs. By default vardoger does not apply a time window — the first run reads your full local history (that is when the signal is richest and a windowed default would silently drop older sessions you never get a second chance to feed in). After that, a per-conversation checkpoint store at
~/.vardoger/state.jsonensures every subsequent run only reprocesses new or changed conversations, so refreshes stay fast. If you have very large local history and want to cap the first-run cost, pass--since DAYS(e.g.vardoger prepare --platform cursor --since 90); use--fullto force a full re-crawl that bypasses the checkpoint.
Cross-host profile compiler
The profile compiler combines only existing Vardoger generations that you
select; it does not silently reopen raw transcripts. Generation indexes are
one-based, while latest resolves to the newest saved generation for that
platform:
The normalized JSON audit is available with profile preview --json. It
records source platform, generation, output hash/path, observation time,
recency, confidence, conflicts, supersession, and exclusions. Opposing rules
such as “Prefer tabs” and “Avoid tabs” are withheld from active instructions
until reviewed. Writes preserve everything outside
<!-- vardoger-profile:start --> and <!-- vardoger-profile:end -->.
Supported Platforms
Development
Requires uv (Python package manager):
Project Layout
- Platform-agnostic logic lives under
src/vardoger/. - Platform-specific integration (manifests, skills, install scripts) lives under
plugins/<platform>/. - Tests live in
tests/, mirroring the source tree.
See AGENTS.md for full coding standards and quality checks.
Quality gates
CI enforces a combined quality bar on every push and pull request:
ruff check/ruff format --check— lint (incl. complexity, pylint, return, pathlib, tryceratops rules) and formatting.mypy src/— strict type checking.pytest --cov=vardoger --cov-fail-under=80— tests across Python 3.11–3.13 with a combined 80% coverage floor.- A parallel security job runs
bandit -r src/andpip-audit --skip-editableto catch common code smells and dependency CVEs.
Run the full bundle locally before pushing:
Contributing
Contributions are welcome. Short version:
- Fork
dstrupl/vardogeron GitHub and clone your fork. uv syncand create a topic branch.- Make your changes with tests and run the quality-gate one-liner above.
- Push to your fork and open a PR against
main.
CI (test on Python 3.11/3.12/3.13 plus a security job) will run automatically on the PR. First-time contributors may need a maintainer to click Approve and run before the first workflow execution.
See CONTRIBUTING.md for the full walkthrough and AGENTS.md for coding standards and commit-message conventions.
Releasing to PyPI
CI runs automatically on every push and PR (lint, type check, tests across Python 3.11–3.13). To publish a new version:
- Bump the package, generated setup manifests, platform manifests, and registry
metadata together; close the matching section in
CHANGELOG.md. - Run the complete quality, security, plugin-validation, and build checks.
- Commit and push to
main, then wait for all required checks. - Create an annotated
vX.Y.Ztag and publish the matching GitHub release.
The publish.yml workflow builds the package and uploads it to PyPI via trusted publishers (no API tokens needed). Once complete, pipx install vardoger will pull the new version.
Status
Public beta. Version 0.4.0 is published on PyPI and tagged on GitHub; this
source tree tracks that released version.
See MARKETPLACE_STATUS.md for live listings and
the remaining official-directory submissions.
See MANUAL_SUBMISSION_RUNBOOK.md for the
owner-only submission, review, and publication steps.
See PRD.md for the full product requirements document.
Privacy and security
- PRIVACY.md — what vardoger reads, writes, and (importantly) does not send anywhere.
- SECURITY.md — how to report a vulnerability privately.
License
Licensed under the Apache License, Version 2.0. See also the public Privacy Policy and Terms of Use.
Source: README.md at commit b20a0a1
Tools
0Version history
2- v0.4.0LatestSep 27, 2026
- v0.3.2Sep 16, 2026
Score
50% of the applicable checks met
How complete this listing is, computed from the registry entry, the endpoint and public sources. Not a rating of the server and not a statement that it is safe or working today: reachability is a dated check, and no installs or reviews go into the score.
- Reached in the last 30 days25 pts
Keep the endpoint answering the MCP handshake; SourceWeft probes it every 30 days.
- Auth declared10 pts
Declare the credential headers in the registry entry, or keep the endpoint answering the probe so its auth can be classified.
- Tools listed15 pts
Answer tools/list without a credential, or ship a package that starts in a sandbox without one.
- DescriptionRequired15 pts
- Logo10 pts
- Documentation15 pts
- License10 pts