{"id":29016527,"url":"https://github.com/memgraph/rune","last_synced_at":"2025-08-25T17:04:46.774Z","repository":{"id":192535782,"uuid":"685037357","full_name":"memgraph/rune","owner":"memgraph","description":null,"archived":false,"fork":false,"pushed_at":"2023-09-22T11:09:43.000Z","size":1273,"stargazers_count":13,"open_issues_count":0,"forks_count":0,"subscribers_count":4,"default_branch":"main","last_synced_at":"2025-06-25T22:38:09.610Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":"TypeScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/memgraph.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null}},"created_at":"2023-08-30T11:34:55.000Z","updated_at":"2025-04-15T15:35:21.000Z","dependencies_parsed_at":null,"dependency_job_id":"cb78ddb1-6436-4c17-9059-171d36474b10","html_url":"https://github.com/memgraph/rune","commit_stats":null,"previous_names":["memgraph/rune"],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/memgraph/rune","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/memgraph%2Frune","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/memgraph%2Frune/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/memgraph%2Frune/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/memgraph%2Frune/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/memgraph","download_url":"https://codeload.github.com/memgraph/rune/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/memgraph%2Frune/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":272100683,"owners_count":24873442,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","status":"online","status_checked_at":"2025-08-25T02:00:12.092Z","response_time":1107,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":[],"created_at":"2025-06-25T22:30:33.628Z","updated_at":"2025-08-25T17:04:46.744Z","avatar_url":"https://github.com/memgraph.png","language":"TypeScript","readme":"[![react](https://img.shields.io/badge/React-61DBFB?style=for-the-badge\u0026logo=react\u0026logoColor=black)](https://reactjs.org/)\n[![typescript](https://img.shields.io/badge/TypeScript-3178C6?style=for-the-badge\u0026logo=typescript\u0026logoColor=white)](https://www.typescriptlang.org/)\n[![styledcomponents](https://img.shields.io/badge/styled_components-DB7093?style=for-the-badge\u0026logo=styledcomponents\u0026logoColor=white)](https://styled-components.com/)\n\n[![github](https://img.shields.io/badge/github-181717?style=for-the-badge\u0026logo=github\u0026logoColor=white)](https://github.com/)\n[![docker](https://img.shields.io/badge/docker-2496ED?style=for-the-badge\u0026logo=docker\u0026logoColor=white)](https://www.docker.com/)\n\n# RUNE - Repository Understanding, Navigation and Exploration\n\nRUNE is a web application that integrates Large Language Model (LLM) capabilities with graph visualization to enhance developer productivity and code comprehension while using GitHub.\n\n## Table of contents\n1. [Features](#features)\n2. [Disclaimer](#disclaimer)\n3. [Installation](#installation)\n    1. [Manual](#manual-installation)\n    2. [Docker](#docker-installation)\n4. [Using the app](#using-the-app)\n\n## Features\n\n\u003cimg src=\"./src/assets/images/rune-home.png\" alt=\"rune home page\"\u003e\nTo access the app features you need to find and select a repository you want to analyze using the search bar on the home page.\n\u003cbr\u003e\n\u003cbr\u003e\n\n1. **Codebase review**\n\u003cp align=\"center\"\u003e\n    \u003cimg src=\"./src/assets/images/rune-main.png\" alt=\"rune main page\"\u003e\n\u003c/p\u003e\n\n- The codebase review feature in RUNE combines dynamic graph visualization, a code viewer on file node click, and brief repository data.\n\n2. **Prompt bar for LLM queries**\n\u003cp align=\"center\"\u003e\n    \u003cimg src=\"./src/assets/images/rune-promptbar.png\" alt=\"rune prompt bar\" width=\"400\"\u003e\n\u003c/p\u003e\n\n- The Prompt bar in RUNE serves as an interface to interact with LLMs, enabling you to pose natural language queries and receive detailed insights about your project structure. Due to the GitHub API limitations it can't store the content of all files and analyze it.\n\n3. **Dynamic code analysis**\n\u003cp align=\"center\"\u003e\n    \u003cimg src=\"./src/assets/images/rune-code.png\" alt=\"rune code analysis\" width=\"400\"\u003e\n\u003c/p\u003e\n\n- Dynamic code analysis in RUNE performs real-time code scrutiny, identifying issues, suggesting improvements, and fostering a proactive approach to code quality enhancement.\n\n## Disclaimer\n\n\u003e **Warning**\n\u003e It is recommended that you have access to GPT-4 via the OpenAI API. GPT-3.5 will probably fail to make correct knowledge graphs from your data.\n\u003e Since we still don't have access to GPT-4 OpenAI API, although we made our account a month ago and generated \u003e1$ in billing a week ago,\n\u003e the `init_repo`, `update_file` and `add_file` endpoints are still untested. We initialized knowledge graphs manually, through ChatGPT.\n\u003e **Here be dragons.**\n\nYou can download and run RUNE via Docker to automatically install Memgraph, frontend and the backend components, or install it manually if you prefer a more customized setup.\n\n## Installation\n\n1. **Cloning the repository**\n\nFirst, you need to clone the Git repository that contains the RUNE app. If you already have the codebase, you can skip this step.\n\n```\ngit clone https://github.com/memgraph/rune.git\n```\n\nNavigate into the RUNE root folder:\n\n```\ncd rune \n```\n\n2. **Generating the GitHub API Token**\n\nTo access the GitHub API and get more available requests per hour, you need to create a personal access token. You can create one by following the steps below:\n\n1.  Go to [GitHub Personal Access Tokens](https://github.com/settings/tokens) settings page.\n2.  Click on \"Generate new token.\"\n3.  Provide a descriptive note for the token (e.g., \"magic-graph GitHub API Token\").\n4.  Click \"Generate token\" at the bottom.\n\n**Note**: Ensure that you save the generated token in a safe place. It will not be shown again.\n\n3. **Generating the News API token** (optional for article recommendation)\n\nTo access NewsAPI and retrieve theme-related articles for your repository, you'll need to generate a [NewsAPI](https://newsapi.org/) token. Follow these steps:\n\n1. Go to the NewsAPI website and sign in or create an account.\n2. Once logged in, navigate to your account settings or dashboard.\n3. Copy your API key.\n\n**Note**: It's important to securely store the generated token. Treat it as a sensitive credential, as it provides access to the NewsAPI. Keep it confidential and avoid sharing it publicly.\n\n4. **Creating the .env file**\n\nIn the root directory of your project, create a new file called `.env` (if it doesn't already exist). This file will store your environment variables, including the GitHub API token.\n\nOpen the `.env` file in a text editor and add the following lines:\n\n```\nREACT_APP_GITHUB_API_TOKEN=YOUR_GENERATED_GITHUB_TOKEN\nREACT_APP_NEWS_API_TOKEN=YOUR_GENERATED_NEWSAPI_TOKEN\n```\n\nReplace `YOUR_GENERATED_GITHUB_TOKEN` and `YOUR_GENERATED_NEWSAPI_TOKEN` with the actual tokens you generated in previous steps.\n\n5. **Installing and running RUNE**\n\n    You have the option to install RUNE using Docker, which will automatically install, set up and run the Memgraph database, the backend, and frontend components, or you can manually run the project locally for a more customized setup or if you already have Memgraph up and running.\n\n    ### Manual installation\n\n    You will need to have [Node.js](https://nodejs.org/en/download/current) (version 14 or above) and [npm](https://docs.npmjs.com/downloading-and-installing-node-js-and-npm) (Node Package Manager) installed on your machine.\n\n    1. Install all required dependencies: \n\n        ```npm install```\n\n\n    2. Run the app:\n\n        ```npm start``` \n        \n        This command will compile the TypeScript code and launch the app in your default web browser. If it doesn't open automatically, you can visit `http://localhost:3000` in your browser to access the running app.\n\n    3. Now that you have frontend up and running, you need to start the backend by following the installation steps for [BOR](https://github.com/memgraph/bor).\n\n    ### Docker installation\n\n    1. Starting the app\n\n    To start RUNE make sure you have a running [Docker](https://www.docker.com/) instance and [Docker compose](https://docs.docker.com/compose/install/) installed.\n\n    ```\n    docker compose up\n    ```\n\n### Using the app\n\nTo access the running app after the installation process, you can visit `http://localhost:3000` in your browser.\n\n","funding_links":[],"categories":[],"sub_categories":[],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmemgraph%2Frune","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fmemgraph%2Frune","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmemgraph%2Frune/lists"}