OpenViSTAI · Agents · Blockchain · Crypto
Menu
AI Data & Analytics

Doppelganger

Doppelganger is a Python GitHub App that compares newly opened issues and pull requests with existing repository discussions, flags likely similarities, and comments on pull requests with points to consider.

Independent OpenViST project profile, based on linked sources.

Doppelganger — OpenViST project profile in AI Data & Analytics.
OpenViST project illustration. See the linked sources for product details.
Understand the project

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.
Before you choose

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.

Source-based practical guide

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

  1. Create a GitHub App with Issues and Pull requests read/write permissions and subscribe it to issue and pull request events.

  2. Clone the repository, install dependencies from requirements.txt, and create a .env file from .env.example.

  3. Set APP_ID, WEBHOOK_SECRET, and OLLAMA_MODEL in the environment, and place the GitHub private key in the project root as rsa.pem.

  4. 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.
Evidence and transparency

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