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.
- 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
- 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
- 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
- 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
- Go 1.23+
- Node.js 18+
- pnpm
- Wails v2
- Cursor Editor (for the "Open in Cursor" feature)
-
Clone the repository
git clone <repository-url> cd cursor-remote-opener
-
Install frontend dependencies
cd frontend && pnpm install
-
Run in development mode
sudo wails dev
-
Build for production
wails build
-
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)
-
Connect: Click any connection card or "Connect" button to SSH into the server
- Navigate: Click folders to enter them, use breadcrumbs to jump to parent directories
- Home: Click home icon to go to user home directory
- Hidden Files: Click eye icon to toggle visibility of dotfiles
- Refresh: Click refresh button to reload current directory
- Open Directory: Click "Open in Cursor" button next to any directory
- Automatic Setup: Cursor opens with SSH remote connection pre-configured
- Start Coding: Edit files directly on the remote server through Cursor
├── 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
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"
}
]# 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 buildThe app requires sudo for development mode due to file permission restrictions during the build process.
When you click "Open in Cursor" for a directory, the app executes:
cursor --remote ssh-remote+username@hostname /path/to/directoryThis automatically configures Cursor to:
- Connect via SSH to your server
- Open the specified directory
- Enable full remote development capabilities
- Fork the repository
- Create a feature branch (
git checkout -b feature/amazing-feature) - Commit your changes (
git commit -m 'Add amazing feature') - Push to the branch (
git push origin feature/amazing-feature) - Open a Pull Request
This project is licensed under the MIT License - see the LICENSE file for details.