Skip to content

arelove/infinity-loop

Repository files navigation

Infinity Loop logo

Infinity Loop

Every answer opens a new question. Type any topic and get an interactive knowledge graph of connected concepts, sources, and ideas, generated by the AI provider of your choice.

License: Apache 2.0 Tauri 2 Svelte 5 Rust Platforms

About  |  Download  |  Quick Start  |  Providers  |  Settings  |  Releases  |  Tech Stack


What is this

Infinity Loop is a cross-platform desktop application for visual knowledge exploration. You enter a concept — "quantum entanglement", "history of jazz", "how TCP/IP works" — and the app builds a live graph: idea nodes, connections between them, and sources and images pulled from the web.

The app has two modes:

  • Seek — AI search mode. Ask a question, and your chosen AI provider together with Tavily build the graph.
  • Dev — code analysis mode. Load a codebase, and the app maps out its architecture.

All API keys are stored in the Rust backend and are never exposed to the web view or written to the frontend.


Screenshots

Seek mode landing Seek mode — enter any topic to start exploring

Dev mode codebase explorer Dev mode — load a codebase and explore its architecture

Download

Prebuilt installers for Windows, macOS, and Linux are published on the Releases page:

Platform File
Windows 10 / 11 .exe (NSIS installer)
macOS (Apple Silicon and Intel) .dmg
Linux .AppImage, .deb

After installing, open Settings and choose a provider, then enter the matching API key.


Quick Start

Prerequisites

Tool Version Why
Node.js 18+ Frontend build
Rust stable Backend
Tauri CLI prerequisites 2.x Platform build tools
Tavily API key - Web search
One AI provider key - Graph generation (see below)

Installation

# 1. Clone the repo
git clone https://github.com/arelove/infinity-loop.git
cd infinity-loop

# 2. Install dependencies
npm install

# 3. Run in dev mode
npm run tauri dev

Once the app is running, open Settings from the toolbar and enter your keys. Keys are stored by the Rust backend in the OS application-config directory and are never sent anywhere except the official provider APIs.


AI Providers

Choose any of the following in Settings. Only the Tavily key (for web search) plus one provider key are required.

Provider Where to get a key Notes
Google Gemini aistudio.google.com/apikey Default; free tier available
OpenAI (ChatGPT) platform.openai.com/api-keys
Anthropic (Claude) console.anthropic.com
xAI (Grok) console.x.ai
NVIDIA NIM build.nvidia.com
Local (Ollama) - No key; runs a local model, only the base URL is needed

You can also type any model id that is not in the suggestion list.

PDF structural analysis in Dev mode uses Google Gemini specifically (native PDF reading), so a Gemini key is needed for that feature regardless of the active chat provider.


Settings

Open Settings from the toolbar to configure:

  • AI Provider — which model powers exploration
  • Model — pick from suggestions or enter a custom id
  • API keys — one per provider (stored in the backend, shown only as "set")
  • Tavily key — web search
  • Graphics Quality — High for full animations and effects, or Low for older or integrated GPUs

Keyboard Shortcuts

Key Action
Ctrl+S Save graph
Ctrl+E Export as PNG
Ctrl+R Reset / new search
Escape Close modal

Building a Release

Local build (current platform)

npm run tauri build

Bundles are written under src-tauri/target/release/bundle/:

  • Windows: nsis/InfinityLoop_<version>_x64-setup.exe
  • macOS: dmg/Infinity Loop_<version>_<arch>.dmg
  • Linux: appimage/ and deb/

On Windows the NSIS installer works on both Windows 10 and 11. If WebView2 is not already present, the installer downloads and installs it automatically.

Continuous integration

Every push and pull request runs .github/workflows/ci.yml: svelte-check for the frontend, and cargo fmt, cargo clippy, and cargo test for the backend.


Project Structure

infinity-loop/
├── src/                    # Frontend (SvelteKit + Svelte 5)
│   ├── lib/
│   │   ├── components/     # UI components (incl. TitleBar)
│   │   ├── i18n/           # Localization (EN / RU)
│   │   └── api.ts          # IPC calls to the Rust backend
│   └── routes/
│       ├── _seek/          # AI search mode
│       └── _dev/           # Code analysis mode
│
└── src-tauri/              # Backend (Rust + Tauri 2)
    └── src/
        └── lib.rs          # Provider dispatch, streaming, sessions, config
Project architecture map generated with Infinity Loop Dev mode Architecture map generated by Infinity Loop itself, using its own Dev mode

Tech Stack

  • Tauri 2 — native shell, IPC, filesystem access
  • SvelteKit + Svelte 5 — reactive UI with runes
  • Xyflow/Svelte — interactive node graph
  • Tailwind CSS — styling
  • GSAP — animations
  • Rust — HTTP client (reqwest), streaming, session storage, provider proxy

Localization

The app supports English and Russian. Use the language switcher in the app. To add a language, copy src/lib/i18n/en.ts and translate the strings.


License

Apache 2.0, Arelove (https://github.com/arelove)


Inspired by RabbitHoles AI and its idea of endless, curiosity-driven exploration.

Back to top

About

AI knowledge graph explorer built with Tauri + Svelte + Rust

Topics

Resources

Stars

Watchers

Forks

Releases

Packages

Contributors

Languages