Practical overview
When it fits
Use it when you can run a Python app connected to GitHub and want new issues and pull requests in selected repositories compared with existing discussions.
Who it is for
- Open-source maintainers managing incoming issues and pull requests
- Repository administrators who want similarity-based issue handling and PR feedback
Documented uses
- Compare a new issue with existing issues to identify likely duplicates or related discussions.
- Surface related issues and pull requests using embedding-based similarity search.
- Add comments on pull requests based on their titles and descriptions.
Requirements & limits
- Issue titles and bodies are embedded with MiniLM-L6-v2 and stored and searched in ChromaDB using cosine similarity.
- The similarity threshold can be adjusted from 0 to 1; the README lists 0.5 as the default.
- The README describes automatic closure for highly similar issues and comments for related matches, so threshold configuration affects how issue matches are handled.
- The app requires GitHub App permissions for issues and pull requests, a running server, Ollama, and a private key.
Check current requirements in the official documentation. Source-based guidance does not mean OpenViST has run or independently tested this project.
Set up Doppelganger for a GitHub repository
Prepare the GitHub App, configure the project, and install it on selected repositories.
Before you start
- Python 3.8 or later
- A GitHub account
- A server or hosting platform to run the app
- Ollama and an Ollama-supported model
- A webhook URL and a generated GitHub App private key
Steps
Create a GitHub App with Issues and Pull requests read/write permissions and subscribe it to issue and pull request events.
Clone the repository, install dependencies from requirements.txt, and create a .env file from .env.example.
Set APP_ID, WEBHOOK_SECRET, and OLLAMA_MODEL in the environment, and place the GitHub private key in the project root as rsa.pem.
Run the Flask application with python3 app.py, configure the GitHub App webhook URL to point to the server's /webhook endpoint, and install the app on the chosen repository.
Expected outcome
The installed app monitors new issues and pull requests and compares them with existing repository items.
Guide limitations
- The README describes ngrok as an option for exposing a local server and also gives a run-dev.sh option for users with their own ngrok domain.
- The similarity threshold is configurable; the README lists 0.5 as the default.
Sources & review
Source record details
- Source availability
- Active
- Sources checked
- 18 October 2026
- Original website title
- dannyl1u/doppelganger · Official homepage title · retained in its source language

