🌐 I2P Daemon GUI

May 25, 2026 Β· View on GitHub

I2P Daemon GUI

I2P-GUI App Swift Version I2P License

Modern GUI for managing I2P daemon on macOS with full internationalization

Download Build Status


🌐 Language / Π―Π·Ρ‹ΠΊ

πŸ‡ΊπŸ‡Έ English Documentation

English README

Full English documentation with screenshots and features

πŸ‡·πŸ‡Ί Русская докумСнтация

Русский README

Полная русская докумСнтация со ΡΠΊΡ€ΠΈΠ½ΡˆΠΎΡ‚Π°ΠΌΠΈ ΠΈ функциями


🎯 Description

I2P Daemon GUI is an elegant native macOS application that allows you to easily manage I2P daemon through a modern SwiftUI interface. No more command line - all management in just a few clicks!

✨ Key Features:

  • πŸ–₯️ Modern SwiftUI interface with adaptive theme
  • 🌐 Full internationalization (Russian/English) with smart restart
  • πŸš€ One-click start/stop daemon management
  • πŸ“Š Real-time monitoring of daemon status
  • πŸ“‹ Comprehensive statistics of server and network
  • βš™οΈ Interactive settings with port and bandwidth management
  • πŸ”§ Auto-start via LaunchAgent for automatic startup on system login
  • πŸ“ Detailed logging of all operations
  • πŸŽ›οΈ System tray with daemon state indicators and quick controls
  • πŸ”„ Smart exit with proper daemon shutdown (Cmd+Q, tray, language change)
  • 🌐 Dynamic configuration reading with automatic settings parsing
  • πŸ“± Start minimized - application starts in tray without showing window
  • πŸ› οΈ Built-in Tools module - comprehensive set of I2P utilities with interactive terminal

πŸ“₯ Download and Installation

  1. πŸ“₯ Download the ready application:

    # Direct link to .app ZIP archive
    curl -L https://github.com/MetanoicArmor/gui-i2pd/releases/download/v2.60.0/I2P-Daemon-GUI-2.60.0.zip -o I2P-Daemon-GUI-2.60.0.zip
    
  2. πŸ“ Extract and install:

    unzip I2P-Daemon-GUI-2.60.0.zip
    mv "I2P Daemon GUI.app" /Applications/
    
  3. πŸš€ Launch the application:

    open "/Applications/I2P Daemon GUI.app"
    

🍺 Homebrew: arm64 + Intel:

The cask automatically chooses the matching ZIP for your architecture (Apple Silicon or Intel) from the release assets.

Install / upgrade:

brew install --cask metanoicarmor/i2pd-gui/i2pd-gui
brew upgrade --cask i2pd-gui

The cask has a postflight step that automatically runs xattr -dr com.apple.quarantine on the installed .app, so on most systems the app opens without any extra action.

If macOS still reports the app as β€œdamaged” (Gatekeeper / quarantine on a non‑notarized download), run manually:

xattr -dr com.apple.quarantine "/Applications/I2P Daemon GUI.app"

Recent macOS versions may not offer β€œOpen Anyway” in System Settings for this case (that flow targets unidentified developer, not damaged). The proper long‑term fix is a Developer ID signature + Apple notarization.

Maintainers: brew reads the cask from MetanoicArmor/homebrew-i2pd-gui, not from this repo. After you upload new release ZIPs, update Casks/i2pd-gui.rb there (version and sha256 per architecture). The Casks/ file here is only a reference copy.

πŸ“‹ System Requirements:

  • macOS: 14.0 or newer
  • Processor: Intel x64 or Apple Silicon (M1/M2/M3/M4)
  • Memory: 100+ MB free RAM
  • Disk Space: 35+ MB

🎨 Interface and Features

πŸ“Έ Screenshots (English UI):

I2P GUI Main Interface *Main window: daemon status, stats, and controls*

I2P GUI Settings Settings: HTTP/SOCKS5 ports, bandwidth, LaunchAgent auto-start

I2P GUI Advanced Settings Advanced settings: tunnels, Address Book, and subscriptions

I2P GUI Tray Menu

Menu bar extras: quick actions and daemon state

πŸ–₯️ Main Window:

  • πŸ“Š Server Status: shows daemon state (running/stopped)
  • ⏱️ Uptime: I2P daemon uptime
  • 🀝 Peers: number of active connections
  • 🌐 Network Statistics: incoming/outgoing traffic, tunnels, routers

πŸŽ›οΈ Control Panel:

  • ▢️ Start - start I2P daemon with one click
  • ⏹️ Stop - proper daemon shutdown
  • πŸ”„ Restart - restart service
  • πŸ”„ Refresh Status - check current state
  • βš™οΈ Settings - daemon configuration
  • πŸ—‘οΈ Clear Logs - clear log history
  • πŸ› οΈ Tools - access built-in I2P utilities

βš™οΈ Settings:

  • 🌐 Network Configuration: HTTP and SOCKS5 proxy port management
  • ⚑ Bandwidth: network speed selection (L/O/P/X)
  • πŸ”§ Automation: daemon auto-start configuration via LaunchAgent
  • 🎨 Interface: interface language management (Russian/English)
  • πŸ“± Start Minimized: application starts in tray without showing window
  • πŸ“Š Dynamic Values: direct settings loading from config files

πŸ“ Logging:

  • πŸ“‹ Operation History: detailed log of all actions
  • πŸ” Filtering: search by message type
  • πŸ’Ύ Export: save logs to file
  • πŸ—‘οΈ Clear: quick history cleanup

πŸ› οΈ Built-in Tools Module:

  • πŸ”‘ Key Generation: create I2P destination keys with signature type selection
  • ⛏️ Address Mining: generate vanity addresses with custom prefixes
  • πŸ” Key Information: analyze existing keys and get destination addresses
  • πŸ“§ B33 Address: calculate B33 addresses for encrypted leasesets
  • 🌐 Domain Registration: generate registration strings for .i2p domains
  • 🏷️ 3LD Registration: three-step registration for third-level domains
  • πŸ”„ Domain Alias: rebind domains to new keys
  • ⏰ Offline Keys: create temporary keys with limited validity
  • πŸ“Š Router Info: analyze RouterInfo files with port/firewall/IPv6 flags
  • πŸ” X25519 Keys: generate encryption keys for authorized leasesets
  • πŸ“ Base64 Encoding: I2P-specific Base64 encoding/decoding
  • πŸ‘₯ Family Tool: manage family certificates for router organization
  • βœ… Host Verification: verify signatures of host records
  • βš™οΈ Auto Configuration: interactive terminal for i2pd.conf generation

🌐 Internationalization

🎯 Supported Languages:

  • πŸ‡·πŸ‡Ί Russian - primary interface language
  • πŸ‡ΊπŸ‡Έ English - full English localization

πŸ”„ Smart Language Switching:

  • Automatic restart when changing language
  • Daemon preservation - daemon continues running during restart
  • Proper window closing - all modal windows close automatically
  • Instant application - new language applies immediately after restart

πŸ“‹ Localized Elements:

  • βœ… All interface elements (buttons, menus, labels)
  • βœ… Log messages
  • βœ… Bandwidth settings
  • βœ… Tray menu
  • βœ… Dialogs and notifications

πŸ—οΈ Technical Architecture

πŸ› οΈ Technology Stack:

  • UI: SwiftUI + macOS Design Guidelines
  • Language: Swift 5.7+
  • Build Manager: Swift Package Manager
  • Daemon: i2pd 2.60 (embedded binary)
  • Dependencies: Native macOS APIs
  • Localization: NSLocalizedString + .lproj bundles

πŸ“¦ Application Structure:

I2P Daemon GUI.app/
β”œβ”€β”€ Contents/
β”‚   β”œβ”€β”€ Info.plist              # Metadata (version 2.60)
β”‚   β”œβ”€β”€ MacOS/
β”‚   β”‚   └── I2P Daemon GUI       # GUI executable (1.5MB)
β”‚   └── Resources/
β”‚       β”œβ”€β”€ I2P-GUI.icns         # Application icon
β”‚       β”œβ”€β”€ i2pd                  # Daemon binary (29MB)
β”‚       β”œβ”€β”€ tools/                # Built-in I2P utilities
β”‚       β”‚   β”œβ”€β”€ keygen            # Key generation utility
β”‚       β”‚   β”œβ”€β”€ vain              # Address mining utility
β”‚       β”‚   β”œβ”€β”€ keyinfo           # Key information utility
β”‚       β”‚   β”œβ”€β”€ b33address        # B33 address calculator
β”‚       β”‚   β”œβ”€β”€ regaddr           # Domain registration utility
β”‚       β”‚   β”œβ”€β”€ regaddr_3ld       # Third-level domain registration
β”‚       β”‚   β”œβ”€β”€ regaddralias      # Domain alias utility
β”‚       β”‚   β”œβ”€β”€ offlinekeys       # Offline keys utility
β”‚       β”‚   β”œβ”€β”€ routerinfo        # Router info analyzer
β”‚       β”‚   β”œβ”€β”€ x25519            # X25519 key generator
β”‚       β”‚   β”œβ”€β”€ i2pbase64         # Base64 encoder/decoder
β”‚       β”‚   β”œβ”€β”€ famtool           # Family certificate tool
β”‚       β”‚   β”œβ”€β”€ verifyhost        # Host verification utility
β”‚       β”‚   └── autoconf          # Interactive config generator
β”‚       β”œβ”€β”€ ru.lproj/            # Russian localization
β”‚       β”‚   └── Localizable.strings
β”‚       └── en.lproj/            # English localization
β”‚           └── Localizable.strings

Total package size: ~35MB

πŸ”§ System Components:

  • I2pdManager: daemon lifecycle manager with dynamic version fetching
  • ContentView: main application interface with localization
  • SettingsView: configuration panel with smart restart
  • StatusCard: system status card
  • LogView: logging system with localized messages
  • TrayManager: system tray with localized menu
  • AppDelegate: application lifecycle handling and smart exit
  • ToolsManager: built-in utilities manager with process handling
  • ToolsView: comprehensive tools interface with interactive terminal

πŸ”¨ Building from Source

πŸ“‹ Prerequisites:

# Install Xcode Command Line Tools
xcode-select --install

# Check Swift version
swift --version

πŸš€ Build Instructions:

  1. πŸ“₯ Clone the repository:

    git clone https://github.com/MetanoicArmor/gui-i2pd.git
    cd gui-i2pd
    
  2. πŸ”¨ Build the project:

    # Apple Silicon (arm64)
    ./build-app-arm64.sh
    
    # Intel (x86_64)
    ./build-app-intel.sh
    
  3. πŸš€ Launch the application:

    open "I2P Daemon GUI.app"
    

πŸ“œ Available Commands:

  • ./build-app-simple.sh - full .app package build with localization
  • swift build - source code compilation only
  • swift test - run tests (if available)

πŸ“Š Project Statistics

MetricValue
Lines of Code7,521 Swift
Source Files4 (AppCore.swift, ToolsView.swift, LiquidGlassTheme.swift, TrayManager.swift)
Repository Size~292MB (tracked files, without local build artifacts)
Build Time~10-20 seconds (incremental, by architecture)
CompatibilitymacOS 14.0+
UI Framework VersionSwiftUI
Tray Statusβœ… Stable
Parsing Functionsβœ… Fully functional
Localizationβœ… Russian + English
Localization Keys885 total (RU: 441, EN: 444)
Built-in Toolsβœ… 14 utilities
Interactive Terminalβœ… Real-time I/O

The Swift GUI source code in this repository is distributed under the BSD-3-Clause License. See the LICENSE file.

Bundled binaries in release .app bundles are not authored here; they are built from upstream projects:

ComponentSourceLicense (upstream)
i2pd (daemon)PurpleI2P/i2pdBSD-3-Clause (see file in repo)
Tools (Contents/Resources/tools/)PurpleI2P/i2pd-toolsPer LICENSE in that repository

🌐 Technologies Used:

  • I2P Network: https://geti2p.net/ - anonymous network
  • i2pd daemon: https://i2pd.website - official I2P protocol implementation; PurpleI2P/i2pd on GitHub
  • Swift: Apple programming language
  • SwiftUI: Apple interface framework
  • NSLocalizedString: Apple localization system

β˜• Developer Support

If you like this project and it brings value, you can support its development by buying a virtual coffee:

β˜• Buy developer a coffee:

⚑ TON:

πŸ“‹ TON Address:

UQCsX_UVKylmlxb4dWZlXdmlyRzNm-kzUx7Ld1VQHk1ob0MY

Thank you for your support! It motivates to continue working on the project πŸ™


πŸŽ‰ Project Ready to Use!

πŸš€ Direct Download:

Download I2P Daemon GUI.app


I2P Daemon GUI - elegant solution for macOS with minimal setup and maximum functionality.

Created with ❀️ by Vade for privacy and anonymity community

Β© 2026 Vade