Skip to content

micsama/NeoHubR

 
 

Repository files navigation

🚀 NeoHubR

switcher

Give your Neovide "Superpowers" on macOS ⚡️

简体中文


NeoHubR (Reboot) is a modern, feature-packed reincarnation of NeoHub. Rebuilt from the ground up with SwiftUI and Swift 6 Concurrency, it transforms Neovide on macOS into a powerhouse with IDE-like project management.

🌟 What's New in Reboot?

Building upon the core vision of the original tool, NeoHubR introduces modern enhancements and a robust architecture:

  1. 🗂️ Advanced Project Management:
    • History & Stars: Track recent projects and pin your favorites.
    • Customization: Set custom names, icons (SF Symbols/Emoji), and highlight colors for each project.
  2. 🧠 Session Awareness: First-class support for Session.vim. Opening a directory with a session file just works.
  3. 🧟 Instance Resurrection: Restart NeoHubR (or crash recover), and it will automatically reconnect to all your running Neovide instances. No more lost windows.
  4. ⚡ Modern & Beautiful: Completely rewritten using the latest macOS APIs. It's faster, safer, and looks stunning with "Liquid Glass" visuals.

Important

Why use the CLI (nh)? macOS GUI apps often struggle to inherit your shell's environment variables (like PATH, LSP setups). By running nh . from your terminal, NeoHubR captures your exact shell environment and passes it to Neovide. This ensures your plugins and tools work perfectly.

📸 Screenshots

settings projects editor

✨ Feature Highlights

  • 🖱️ Menu Bar Workflow: Instant access to all running editors with a single click.
  • ⌨️ Seamless Switcher: `⌃ + `` (Ctrl + Backtick) to summon a global switcher to "teleport" between different projects.
  • 🚀 Smart Launch (CLI): Stop duplicating! Opening a project via CLI will automatically re-activate the existing instance if it’s already running.
  • 📂 Project Registry: Keep your workspace organized with Starred and Recent project lists integrated directly into the switcher.
  • 🔔 Native Notifications: Stay informed with clean system notifications for CLI and editor lifecycle events.
  • 🎨 Modern macOS Aesthetic: Built with SwiftUI and featuring "Liquid Glass" visuals—it looks and feels like a native part of your Mac.

🤔 Why NeoHubR?

Neovide is amazing, but it has two major "quality of life" issues on macOS:

  1. Window Identity Crisis: When running multiple instances, every process shows up as just neovide in ⌘⇥. It’s a guessing game to find the right project.
  2. Swap File Conflicts: Re-opening an existing project by mistake often leads to those annoying swap-file errors.

NeoHubR solves this by bringing a modern IDE-like project management experience to Neovide.

🛠️ Requirements & Setup

  • System: macOS 14+ (Sonoma or later)
  • Environment: neovide must be in your PATH
  • Core: After installing the app, remember to click Install CLI in Settings (this is where the magic happens).

Installation

  1. Download the latest .dmg from Releases.
  2. Drag NeoHubR.app into /Applications.
  3. First-run Note: Since this build is not notarized, if macOS blocks it, just Right-click -> Open in Finder, or allow it via System Settings -> Privacy & Security.

💡 How to Play

Command Line (CLI)

Use nh instead of neovide in your terminal. It handles de-duplication and brings existing windows to the front automatically.

Hotkeys (Default)

  • `⌃ + ``: Summon the Project Switcher.
  • ⌘ ⌃ Z: Quickly jump back to the last active editor.
  • Inside the Switcher:
  • ⇥ (Tab) / shift + ⇥ (Tab): Cycle through editors.
  • ⌘ Q: Quit all editors.
  • ⌘ ⌫: Quit the selected editor.

Tip

Most shortcuts can be customized in the Settings. More customization options are coming soon!

🏗️ Local Build

1. Quick Package (Generate DMG)

We provide a script that handles building, icon scaling, and DMG creation:

./scripts/build.sh

The final DMG will be located in the ./build/dist/ directory.

2. Manual Build

If you only want to compile specific targets:

open NeoHubR.xcodeproj
# Build the App and CLI Tool
xcodebuild -project NeoHubR.xcodeproj -scheme NeoHubR -configuration Debug build
xcodebuild -project NeoHubR.xcodeproj -scheme NeoHubRCLI -configuration Debug build

🧭 Roadmap (Short)

Latest Release (v0.3.6)

  • Session Defaults: Session.vim name defaults to its parent folder.
  • Instance Resurrection: Restore running instances after restart from /tmp/neohubr.instances.json.
  • Instance Attach: Attach to running Neovide instances (hybrid strategy).
  • Cleaner Switcher Flow: Items cache + refreshData, remove refreshToken, use VStack for stability.
  • CLI Modernization: nh binary naming + install path sync; legacy neohub symlink on install.
  • Structure Cleanup: App/Core/Support grouping and file moves.

Next

  • v0.4.x: GUI environment inheritance; attach to non‑NeoHubR Neovide instances; Switcher polish.
  • v0.5.x: Localization framework & string migration; full SwiftUI assessment.

🤝 Credits

📄 License

This project is licensed under the MIT License.

About

Neovide instance manager, rebooted. Fork of NeoHub.

Resources

Stars

Watchers

Forks

Packages

No packages published

Languages

  • Swift 98.9%
  • Other 1.1%