|
| 1 | +# Claudeboard |
| 2 | + |
| 3 | +Share images with Claude Code running on a remote server via Remote-SSH. Upload clipboard images instantly and get shareable file paths for seamless Claude Code workflows. |
| 4 | + |
| 5 | +## ✨ Features |
| 6 | + |
| 7 | +- 🖼️ **Instant clipboard upload** - Press `Ctrl+Alt+V` to upload any image from clipboard |
| 8 | +- 🌍 **Cross-platform support** - Works on Windows, Linux, and macOS |
| 9 | +- 🔗 **Smart path insertion** - Automatically pastes file paths in editor or terminal |
| 10 | +- 🌐 **Remote-SSH integration** - Seamlessly works with VS Code Remote-SSH |
| 11 | +- 🧹 **Configurable auto-cleanup** - Set retention period (0-365 days, 0 = never delete) |
| 12 | +- ⚡ **Real-time progress** - Visual feedback during upload process |
| 13 | +- 🔐 **Secure by design** - Uses your existing SSH connections |
| 14 | +- 🎯 **Dual context** - Works in both code editors and integrated terminals |
| 15 | + |
| 16 | +## 🚀 Quick Start |
| 17 | + |
| 18 | +### Step 1: Prerequisites |
| 19 | +- Install VS Code Remote-SSH extension |
| 20 | +- Connect to your remote server |
| 21 | +- Open a workspace folder on the remote server |
| 22 | + |
| 23 | +### Step 2: Upload Images |
| 24 | +1. **Copy any image to clipboard** (screenshot, file copy, web image) |
| 25 | +2. **Press `Ctrl+Alt+V`** in VS Code editor or terminal |
| 26 | +3. **Watch the magic** - Image uploads instantly and path is pasted |
| 27 | +4. **Done!** Your image is now accessible at the inserted file path |
| 28 | + |
| 29 | +💡 **Claude Code Tip**: The generated file paths can be directly shared with Claude Code for image analysis, making it perfect for discussing screenshots, diagrams, or visual debugging. |
| 30 | + |
| 31 | +## 🌐 Upload Destination |
| 32 | + |
| 33 | +### Remote Server Upload |
| 34 | +- **Location**: `.claude/claude-code-chat-images/` in workspace root |
| 35 | +- **Automatic cleanup**: Files older than 30 days are automatically deleted |
| 36 | +- **Git ignored**: Images are automatically excluded from git commits |
| 37 | +- **Secure**: Uses existing Remote-SSH connection, no additional authentication needed |
| 38 | +- **Returns**: Full file path (e.g., `/workspace/.claude/claude-code-chat-images/image_1234567890.png`) |
| 39 | + |
| 40 | +## ⚙️ Configuration |
| 41 | + |
| 42 | +Go to `File > Preferences > Settings` and search for "Claudeboard": |
| 43 | + |
| 44 | +### Available Settings: |
| 45 | + |
| 46 | +#### Keybinding |
| 47 | +Choose your preferred keyboard shortcut: |
| 48 | +- `Ctrl+Alt+V` (default) |
| 49 | +- `Ctrl+Shift+V` |
| 50 | +- `Alt+V` |
| 51 | +- `Ctrl+V` (may conflict with normal paste) |
| 52 | +- `F12` |
| 53 | + |
| 54 | +#### Retention Period |
| 55 | +Control how long uploaded images are kept: |
| 56 | +- **Default**: 30 days |
| 57 | +- **Range**: 0-365 days |
| 58 | +- **Special**: Set to `0` to never delete images automatically |
| 59 | + |
| 60 | +**Note**: The extension always inserts raw file paths for maximum compatibility. |
| 61 | + |
| 62 | +## 📋 Requirements |
| 63 | + |
| 64 | +- **VS Code 1.74.0** or newer |
| 65 | +- **VS Code Remote-SSH extension** (for remote server connections) |
| 66 | +- **Active remote connection** to your development server |
| 67 | +- **Workspace folder** opened on the remote server |
| 68 | + |
| 69 | +### Platform Support |
| 70 | +- ✅ **Windows** - Full clipboard support via PowerShell |
| 71 | +- ✅ **Linux** - Clipboard support via `xclip` or `wl-clipboard` |
| 72 | +- ✅ **macOS** - Clipboard support via `pbpaste` |
| 73 | + |
| 74 | +### Platform-Specific Dependencies |
| 75 | +- **Linux**: Install `xclip` (X11) or `wl-clipboard` (Wayland) |
| 76 | +- **macOS**: Uses built-in `pbpaste` (no additional setup) |
| 77 | +- **Windows**: Uses built-in PowerShell (no additional setup) |
| 78 | + |
| 79 | +## 🎨 Supported Formats |
| 80 | + |
| 81 | +- **PNG** (automatic conversion from clipboard) |
| 82 | +- **Automatic cleanup** after 30 days |
| 83 | +- **Workspace integration** with `.claude/` directory structure |
| 84 | + |
| 85 | +## ⌨️ Keyboard Shortcuts |
| 86 | + |
| 87 | +| Shortcut | Action | Context | |
| 88 | +|----------|--------|---------| |
| 89 | +| `Ctrl+Alt+V` | Upload image from clipboard | Editor & Terminal | |
| 90 | +| `Ctrl+V` | Normal paste (unaffected) | Editor & Terminal | |
| 91 | + |
| 92 | +**Note**: You can change the upload shortcut in settings. `Ctrl+V` always works normally for text pasting. |
| 93 | + |
| 94 | +## 📦 Installation |
| 95 | + |
| 96 | +### From VS Code Marketplace (Recommended) |
| 97 | +1. Open VS Code |
| 98 | +2. Go to Extensions (`Ctrl+Shift+X`) |
| 99 | +3. Search for "Claudeboard" |
| 100 | +4. Click "Install" |
| 101 | + |
| 102 | +### From .vsix file |
| 103 | +1. Download the latest `.vsix` file from [Releases](https://github.com/dkodr/claudeboard/releases) |
| 104 | +2. Open VS Code |
| 105 | +3. Press `Ctrl+Shift+P` and type "Extensions: Install from VSIX" |
| 106 | +4. Select the downloaded `.vsix` file |
| 107 | + |
| 108 | +## 🐛 Troubleshooting |
| 109 | + |
| 110 | +| Problem | Solution | |
| 111 | +|---------|----------| |
| 112 | +| "No remote connection detected" | Connect to remote server using Remote-SSH extension | |
| 113 | +| "No workspace folder available" | Open a folder on the remote server | |
| 114 | +| Image not detected | Make sure image is copied to clipboard (not just selected) | |
| 115 | +| PowerShell error | Check if PowerShell is available and ExecutionPolicy allows execution | |
| 116 | +| Upload timeout | Check Remote-SSH connection stability | |
| 117 | +| Paste error | Make sure cursor is in text editor or terminal | |
| 118 | +| File permission error | Check write permissions in workspace directory | |
| 119 | + |
| 120 | +## 📁 File Organization |
| 121 | + |
| 122 | +``` |
| 123 | +workspace/ |
| 124 | +├── .claude/ |
| 125 | +│ └── claude-code-chat-images/ |
| 126 | +│ ├── .gitignore # Automatically created |
| 127 | +│ ├── image_1234567890.png |
| 128 | +│ └── image_1234567891.png |
| 129 | +└── your-project-files/ |
| 130 | +``` |
| 131 | + |
| 132 | +## 🛠️ Development |
| 133 | + |
| 134 | +Want to contribute or build from source? |
| 135 | + |
| 136 | +```bash |
| 137 | +# Clone repository |
| 138 | +git clone https://github.com/dkodr/claudeboard.git |
| 139 | +cd claudeboard |
| 140 | + |
| 141 | +# Install dependencies |
| 142 | +npm install |
| 143 | + |
| 144 | +# Development workflow |
| 145 | +npm run compile # Compile TypeScript |
| 146 | +npm run watch # Watch for changes |
| 147 | +npm run package # Create VSIX package |
| 148 | + |
| 149 | +# Testing |
| 150 | +code . # Open in VS Code |
| 151 | +# Press F5 to launch Extension Development Host |
| 152 | +``` |
| 153 | + |
| 154 | +### Architecture |
| 155 | +- **TypeScript** with strict mode for type safety |
| 156 | +- **Service-based architecture** for maintainability |
| 157 | +- **Cross-platform clipboard abstractions** |
| 158 | +- **Result<T,E> pattern** for error handling |
| 159 | +- **RAII** for automatic resource cleanup |
| 160 | + |
| 161 | +## 🤝 Contributing |
| 162 | + |
| 163 | +If you want to help with development: |
| 164 | +1. Fork the repository |
| 165 | +2. Create a feature branch (`git checkout -b feature/amazing-feature`) |
| 166 | +3. Commit your changes (`git commit -m 'Add amazing feature'`) |
| 167 | +4. Push to the branch (`git push origin feature/amazing-feature`) |
| 168 | +5. Open a Pull Request |
| 169 | + |
| 170 | +## 📄 License |
| 171 | + |
| 172 | +MIT License - see [LICENSE](https://github.com/dkodr/claudeboard/blob/HEAD/LICENSE) for details. |
| 173 | + |
| 174 | +## 🔗 Links |
| 175 | + |
| 176 | +- [VS Code Remote-SSH](https://marketplace.visualstudio.com/items?itemName=ms-vscode-remote.remote-ssh) - Required extension |
| 177 | +- [VS Code Extensions](https://marketplace.visualstudio.com/vscode) - Marketplace |
| 178 | +- [GitHub Issues](https://github.com/dkodr/claudeboard/issues) - Report issues |
| 179 | + |
| 180 | +--- |
| 181 | + |
| 182 | +**Made with ❤️ for Claude Code and VS Code Remote Development users** |
0 commit comments