Skip to content

pieeee/cursor-remote-opener

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

2 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Cursor Remote Opener

A powerful desktop application that combines SSH connection management with seamless Cursor editor integration. Browse remote file systems and open directories directly in Cursor with SSH remote functionality.

Cursor Remote Opener React Go

✨ Features

🔐 SSH Connection Management

  • Secure Storage: Save SSH credentials locally on your device
  • Easy Management: Add, edit, and delete connections with a clean UI
  • One-Click Connect: Click any connection to instantly SSH and browse files

📁 Remote File Explorer

  • Real-time Browsing: Navigate remote file systems via SSH
  • Smart Navigation: Breadcrumb navigation, home button, parent directory
  • File Details: View permissions, file sizes, and modification times
  • Hidden Files: Toggle visibility of dotfiles with eye icon
  • Sorted Display: Directories first, files alphabetically

🚀 Cursor Integration

  • Open in Cursor: One-click button to open any directory in Cursor
  • SSH Remote: Automatically configures Cursor with ssh-remote+user@host
  • Seamless Workflow: Browse files → Open directory → Start coding

🛠 Tech Stack

  • Frontend: React 19 + TypeScript + shadcn/ui + Tailwind CSS
  • Backend: Go 1.23 + Wails v2.10.2
  • Package Manager: pnpm
  • Build Tool: Vite
  • SSH Client: golang.org/x/crypto/ssh

🚀 Quick Start

Prerequisites

Installation

  1. Clone the repository

    git clone <repository-url>
    cd cursor-remote-opener
  2. Install frontend dependencies

    cd frontend && pnpm install
  3. Run in development mode

    sudo wails dev
  4. Build for production

    wails build

📖 Usage

Managing Connections

  1. Add Connection: Click "Add Connection" and enter SSH details

    • Name: Display name for the connection
    • Host: Server hostname or IP address
    • Username: SSH username
    • Password: Optional (leave empty for key-based auth)
  2. Connect: Click any connection card or "Connect" button to SSH into the server

File Browsing

  1. Navigate: Click folders to enter them, use breadcrumbs to jump to parent directories
  2. Home: Click home icon to go to user home directory
  3. Hidden Files: Click eye icon to toggle visibility of dotfiles
  4. Refresh: Click refresh button to reload current directory

Cursor Integration

  1. Open Directory: Click "Open in Cursor" button next to any directory
  2. Automatic Setup: Cursor opens with SSH remote connection pre-configured
  3. Start Coding: Edit files directly on the remote server through Cursor

🏗 Project Structure

├── main.go                     # Wails app entry point
├── app.go                      # SSH + file management logic
├── wails.json                  # Wails configuration
└── frontend/
    ├── src/
    │   ├── App.tsx            # Main app with routing
    │   └── components/
    │       ├── ConnectionList.tsx     # Connection management
    │       ├── ConnectionDialog.tsx   # Add/Edit modal
    │       └── FileExplorer.tsx       # SSH file browser
    └── wailsjs/go/            # Auto-generated Go bindings

💾 Data Storage

Connections are stored locally in ~/.cursor-remote-opener/connections.json with the following structure:

[
  {
    "id": "uuid",
    "name": "Production Server",
    "host": "example.com",
    "username": "user",
    "password": "optional",
    "createdAt": "2024-01-01T00:00:00Z",
    "updatedAt": "2024-01-01T00:00:00Z"
  }
]

🔧 Development

Commands

# Install dependencies
cd frontend && pnpm install

# Development mode with hot reload
sudo wails dev

# Build for production
wails build

# Frontend only development
cd frontend && pnpm run dev

# Run frontend build
cd frontend && pnpm run build

Permissions

The app requires sudo for development mode due to file permission restrictions during the build process.

🎯 Cursor SSH Remote Format

When you click "Open in Cursor" for a directory, the app executes:

cursor --remote ssh-remote+username@hostname /path/to/directory

This automatically configures Cursor to:

  • Connect via SSH to your server
  • Open the specified directory
  • Enable full remote development capabilities

🤝 Contributing

  1. Fork the repository
  2. Create a feature branch (git checkout -b feature/amazing-feature)
  3. Commit your changes (git commit -m 'Add amazing feature')
  4. Push to the branch (git push origin feature/amazing-feature)
  5. Open a Pull Request

📝 License

This project is licensed under the MIT License - see the LICENSE file for details.

🙏 Acknowledgments

  • Wails - Go + Web frontend framework
  • shadcn/ui - Beautiful UI components
  • Cursor - AI-powered code editor
  • Lucide - Beautiful icons

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors