From e8ff40d5a40ed4d3f4328792bd1f175203f6e680 Mon Sep 17 00:00:00 2001 From: Louis Knight-Webb Date: Fri, 31 Oct 2025 12:39:58 +0000 Subject: [PATCH] Remote host + username opening for VSCode based IDEs (#1134) * feat: add remote VSCode SSH support for remote server deployments Add support for opening VSCode via SSH when Vibe Kanban is running on a remote server. This allows users accessing the web UI through a tunnel to open projects/tasks in their local VSCode which connects to the remote server via SSH. Backend changes: - Add remote_ssh_host and remote_ssh_user fields to EditorConfig (v3) - Create config v8 with migration from v7 - Modify EditorConfig.open_file() to return URL when remote mode is enabled - Update API routes to return OpenEditorResponse with optional URL - Generate vscode:// URL scheme for remote SSH connections Frontend changes: - Update API client to handle OpenEditorResponse type - Modify hooks to open URLs in new tabs when returned - Add UI fields in settings for remote SSH configuration When remote_ssh_host is configured, clicking "Open in VSCode" generates a URL like: vscode://vscode-remote/ssh-remote+user@host/path/to/project This works for both project-level and task-level editor opening. * feat: extend remote SSH support to Cursor and Windsurf editors Extend the remote SSH feature to support Cursor and Windsurf editors, which are VSCode forks that use the same remote SSH protocol. Changes: - Update EditorConfig.open_file() to generate cursor:// and windsurf:// URLs - Show SSH configuration fields in settings for all three VSCode-based editors - Use same vscode-remote SSH URL pattern for all three editors When remote_ssh_host is configured, supported editors generate URLs like: - vscode://vscode-remote/ssh-remote+user@host/path - cursor://vscode-remote/ssh-remote+user@host/path - windsurf://vscode-remote/ssh-remote+user@host/path * fix: address clippy linting issues - Fix uninlined format args in v3.rs - Add allow attributes for re-exported types in v5-v7 * docs: add remote SSH configuration documentation Add comprehensive documentation for the remote SSH editor feature: - Expand Editor Integration section in global-settings.mdx - Document when to use remote SSH (tunnels, systemctl services, remote deployments) - Explain configuration fields (remote_ssh_host, remote_ssh_user) - Detail how the feature works with protocol URLs - List prerequisites for SSH access and VSCode Remote-SSH extension - Support for VSCode, Cursor, and Windsurf editors - Add Remote Deployment section to README.md - Quick guide for setting up remote SSH access - Link to detailed documentation - Include in feature list This documentation helps users understand and configure the remote SSH feature when running Vibe Kanban on remote servers accessed via browser. * remove package-lock in favour of pnpm lock * rollback config version increment * re-impl remote URL * Update i18n for general settings (vibe-kanban 4a1a3ae1) frontend/src/pages/settings/GeneralSettings.tsx Find any strings here that haven't been i18n'd and i18n them * add line number/col to the end of vscode-remote file paths * handle response url when opening file in ide from DiffCard * update remote-ssh guidance in readme * add image to global settings docs --------- Co-authored-by: Stephan Fitzpatrick Co-authored-by: Britannio Jarrett --- README.md | 18 ++++ crates/server/src/routes/projects.rs | 23 +++-- crates/server/src/routes/task_attempts.rs | 21 +++-- .../src/services/config/versions/v2.rs | 79 ++++++++++++++---- .../global-settings.mdx | 61 +++++++++++++- docs/images/vk-editor-ssh.png | Bin 0 -> 136549 bytes frontend/package.json | 2 +- frontend/src/components/DiffCard.tsx | 7 +- .../dialogs/global/OnboardingDialog.tsx | 6 +- frontend/src/hooks/useOpenInEditor.ts | 14 +--- frontend/src/hooks/useOpenProjectInEditor.ts | 7 +- frontend/src/i18n/locales/en/settings.json | 14 ++++ frontend/src/i18n/locales/es/settings.json | 14 ++++ frontend/src/i18n/locales/ja/settings.json | 14 ++++ frontend/src/i18n/locales/ko/settings.json | 14 ++++ frontend/src/lib/api.ts | 15 +++- .../src/pages/settings/GeneralSettings.tsx | 65 +++++++++++++- shared/types.ts | 2 +- 18 files changed, 325 insertions(+), 51 deletions(-) create mode 100644 docs/images/vk-editor-ssh.png diff --git a/README.md b/README.md index 896fabd7..f94c0a2d 100644 --- a/README.md +++ b/README.md @@ -26,6 +26,7 @@ AI coding agents are increasingly writing the world's code and human engineers n - Quickly review work and start dev servers - Track the status of tasks that your coding agents are working on - Centralise configuration of coding agent MCP configs +- Open projects remotely via SSH when running Vibe Kanban on a remote server You can watch a video overview [here](https://youtu.be/TFT3KnZOOAk). @@ -119,3 +120,20 @@ By default, Vibe Kanban uses Bloop AI's GitHub OAuth app for authentication. To ```bash GITHUB_CLIENT_ID=your_client_id_here pnpm run build ``` + +### Remote Deployment + +When running Vibe Kanban on a remote server (e.g., via systemctl, Docker, or cloud hosting), you can configure your editor to open projects via SSH: + +1. **Access via tunnel**: Use Cloudflare Tunnel, ngrok, or similar to expose the web UI +2. **Configure remote SSH** in Settings → Editor Integration: + - Set **Remote SSH Host** to your server hostname or IP + - Set **Remote SSH User** to your SSH username (optional) +3. **Prerequisites**: + - SSH access from your local machine to the remote server + - SSH keys configured (passwordless authentication) + - VSCode Remote-SSH extension + +When configured, the "Open in VSCode" buttons will generate URLs like `vscode://vscode-remote/ssh-remote+user@host/path` that open your local editor and connect to the remote server. + +See the [documentation](https://vibekanban.com/docs/configuration-customisation/global-settings#remote-ssh-configuration) for detailed setup instructions. diff --git a/crates/server/src/routes/projects.rs b/crates/server/src/routes/projects.rs index 392d2c08..9cae92ae 100644 --- a/crates/server/src/routes/projects.rs +++ b/crates/server/src/routes/projects.rs @@ -264,12 +264,17 @@ pub struct OpenEditorRequest { editor_type: Option, } +#[derive(Debug, serde::Serialize, ts_rs::TS)] +pub struct OpenEditorResponse { + pub url: Option, +} + pub async fn open_project_in_editor( Extension(project): Extension, State(deployment): State, Json(payload): Json>, -) -> Result>, StatusCode> { - let path = project.git_repo_path.to_string_lossy(); +) -> Result>, StatusCode> { + let path = project.git_repo_path; let editor_config = { let config = deployment.config().read().await; @@ -278,8 +283,13 @@ pub async fn open_project_in_editor( }; match editor_config.open_file(&path) { - Ok(_) => { - tracing::info!("Opened editor for project {} at path: {}", project.id, path); + Ok(url) => { + tracing::info!( + "Opened editor for project {} at path: {}{}", + project.id, + path.to_string_lossy(), + if url.is_some() { " (remote mode)" } else { "" } + ); deployment .track_if_analytics_allowed( @@ -287,11 +297,14 @@ pub async fn open_project_in_editor( serde_json::json!({ "project_id": project.id.to_string(), "editor_type": payload.as_ref().and_then(|req| req.editor_type.as_ref()), + "remote_mode": url.is_some(), }), ) .await; - Ok(ResponseJson(ApiResponse::success(()))) + Ok(ResponseJson(ApiResponse::success(OpenEditorResponse { + url, + }))) } Err(e) => { tracing::error!("Failed to open editor for project {}: {}", project.id, e); diff --git a/crates/server/src/routes/task_attempts.rs b/crates/server/src/routes/task_attempts.rs index ee155325..29261ca7 100644 --- a/crates/server/src/routes/task_attempts.rs +++ b/crates/server/src/routes/task_attempts.rs @@ -823,11 +823,16 @@ pub struct OpenEditorRequest { file_path: Option, } +#[derive(Debug, Serialize, TS)] +pub struct OpenEditorResponse { + pub url: Option, +} + pub async fn open_task_attempt_in_editor( Extension(task_attempt): Extension, State(deployment): State, Json(payload): Json>, -) -> Result>, ApiError> { +) -> Result>, ApiError> { // Get the task attempt to access the worktree path let base_path_buf = ensure_worktree_path(&deployment, &task_attempt).await?; let base_path = base_path_buf.as_path(); @@ -845,12 +850,13 @@ pub async fn open_task_attempt_in_editor( config.editor.with_override(editor_type_str) }; - match editor_config.open_file(&path.to_string_lossy()) { - Ok(_) => { + match editor_config.open_file(path.as_path()) { + Ok(url) => { tracing::info!( - "Opened editor for task attempt {} at path: {}", + "Opened editor for task attempt {} at path: {}{}", task_attempt.id, - path.display() + path.display(), + if url.is_some() { " (remote mode)" } else { "" } ); deployment @@ -859,11 +865,14 @@ pub async fn open_task_attempt_in_editor( serde_json::json!({ "attempt_id": task_attempt.id.to_string(), "editor_type": payload.as_ref().and_then(|req| req.editor_type.as_ref()), + "remote_mode": url.is_some(), }), ) .await; - Ok(ResponseJson(ApiResponse::success(()))) + Ok(ResponseJson(ApiResponse::success(OpenEditorResponse { + url, + }))) } Err(e) => { tracing::error!( diff --git a/crates/services/src/services/config/versions/v2.rs b/crates/services/src/services/config/versions/v2.rs index 9f6eda66..07ba7a83 100644 --- a/crates/services/src/services/config/versions/v2.rs +++ b/crates/services/src/services/config/versions/v2.rs @@ -1,4 +1,9 @@ -use std::{path::PathBuf, str::FromStr}; +use std::{ + io, + path::{Path, PathBuf}, + process::Command, + str::FromStr, +}; use anyhow::Error; use serde::{Deserialize, Serialize}; @@ -269,6 +274,10 @@ impl From for SoundFile { pub struct EditorConfig { editor_type: EditorType, custom_command: Option, + #[serde(default)] + remote_ssh_host: Option, + #[serde(default)] + remote_ssh_user: Option, } impl From for EditorConfig { @@ -276,6 +285,8 @@ impl From for EditorConfig { Self { editor_type: EditorType::from(old.editor_type), // Now SCREAMING_SNAKE_CASE custom_command: old.custom_command, + remote_ssh_host: None, + remote_ssh_user: None, } } } @@ -312,6 +323,8 @@ impl Default for EditorConfig { Self { editor_type: EditorType::VsCode, custom_command: None, + remote_ssh_host: None, + remote_ssh_user: None, } } } @@ -335,29 +348,61 @@ impl EditorConfig { } } - pub fn open_file(&self, path: &str) -> Result<(), std::io::Error> { - let mut command = self.get_command(); + pub fn open_file(&self, path: &Path) -> Result, io::Error> { + if let Some(url) = self.remote_url(path) { + return Ok(Some(url)); + } + self.spawn_local(path)?; + Ok(None) + } + fn remote_url(&self, path: &Path) -> Option { + let remote_host = self.remote_ssh_host.as_ref()?; + let scheme = match self.editor_type { + EditorType::VsCode => "vscode", + EditorType::Cursor => "cursor", + EditorType::Windsurf => "windsurf", + _ => return None, + }; + let user_part = self + .remote_ssh_user + .as_ref() + .map(|u| format!("{u}@")) + .unwrap_or_default(); + // files must contain a line and column number + let line_col = if path.is_file() { ":1:1" } else { "" }; + let path = path.to_string_lossy(); + Some(format!( + "{scheme}://vscode-remote/ssh-remote+{user_part}{remote_host}{path}{line_col}" + )) + } + + fn spawn_local(&self, path: &Path) -> Result<(), io::Error> { + let command = self.get_command(); if command.is_empty() { - return Err(std::io::Error::new( - std::io::ErrorKind::InvalidInput, + return Err(io::Error::new( + io::ErrorKind::InvalidInput, "No editor command configured", )); } - if cfg!(windows) { - command[0] = - utils::shell::resolve_executable_path(&command[0]).ok_or(std::io::Error::new( - std::io::ErrorKind::NotFound, + // Resolve the executable path without mutating the vector. + let executable = { + #[cfg(windows)] + { + utils::shell::resolve_executable_path(&command[0]).ok_or(io::Error::new( + io::ErrorKind::NotFound, format!("Editor command '{}' not found", command[0]), - ))?; - } + ))? + } + #[cfg(not(windows))] + { + command[0].clone() + } + }; - let mut cmd = std::process::Command::new(&command[0]); - for arg in &command[1..] { - cmd.arg(arg); - } - cmd.arg(path); + let mut cmd = Command::new(executable); + cmd.args(&command[1..]).arg(path); cmd.spawn()?; Ok(()) } @@ -369,6 +414,8 @@ impl EditorConfig { EditorConfig { editor_type, custom_command: self.custom_command.clone(), + remote_ssh_host: self.remote_ssh_host.clone(), + remote_ssh_user: self.remote_ssh_user.clone(), } } else { self.clone() diff --git a/docs/configuration-customisation/global-settings.mdx b/docs/configuration-customisation/global-settings.mdx index ef13a8dc..a868cb62 100644 --- a/docs/configuration-customisation/global-settings.mdx +++ b/docs/configuration-customisation/global-settings.mdx @@ -27,7 +27,66 @@ You can override the default agent configuration per attempt in the create attem ## Editor Integration -Configure integration with your preferred code editor (e.g., VS Code) for a seamless development workflow. +Configure integration with your preferred code editor for a seamless development workflow. + +### Selecting Your Editor + +Choose from various supported editors: +- **VS Code** - Microsoft's popular code editor +- **Cursor** - VSCode fork with AI-native features +- **Windsurf** - VSCode fork optimized for collaborative development +- **Neovim**, **Emacs**, **Sublime Text** - Other popular editors +- **Custom** - Use a custom shell command + +### Remote SSH Configuration + + +Vibe Kanban settings editor section showing ssh configuration options. + + +When running Vibe Kanban on a remote server (e.g., accessed via Cloudflare tunnel, ngrok, or as a systemctl service), you can configure VSCode-based editors to open projects via SSH instead of assuming localhost. + +This feature is available for **VS Code**, **Cursor**, and **Windsurf** editors. + +#### When to Use Remote SSH + +Enable remote SSH configuration when: +- Vibe Kanban runs on a remote server (VPS, cloud instance, etc.) +- You access the web UI through a tunnel or reverse proxy +- Your code files are on a different machine than your browser +- You want your local editor to connect to the remote server via SSH + +#### Configuration Fields + +1. **Remote SSH Host** (Optional) + - The hostname or IP address of your remote server + - Examples: `example.com`, `192.168.1.100`, `my-server` + - Must be accessible via SSH from your local machine + +2. **Remote SSH User** (Optional) + - The SSH username for connecting to the remote server + - If not specified, SSH will use your default user or SSH config + +#### How It Works + +When remote SSH is configured, clicking "Open in VSCode" (or Cursor/Windsurf): +1. Generates a special protocol URL like: `vscode://vscode-remote/ssh-remote+user@host/path/to/project` +2. Opens in your default browser, which launches your local editor +3. Your editor connects to the remote server via SSH +4. The project or task worktree opens in the remote context + +This works for both project-level and task worktree opening. + +#### Prerequisites + +- SSH access configured between your local machine and remote server +- SSH keys or credentials set up (no password prompts) +- VSCode Remote-SSH extension installed (or equivalent for Cursor/Windsurf) +- The remote server path must be accessible via SSH + + +Test your SSH connection first with `ssh user@host` to ensure it works without prompting for passwords. + ## GitHub Integration diff --git a/docs/images/vk-editor-ssh.png b/docs/images/vk-editor-ssh.png new file mode 100644 index 0000000000000000000000000000000000000000..95253d9225a870bd548bb8eea51e9f87a1965201 GIT binary patch literal 136549 zcmeEuXH-+)_AR0U(ggwODhf)A^d3+|q=P8ESLwZ%h)59x6r@RsiZrPbdX+9UAe{iA zN$&wd2ua@I{@=ady#C*Z_w6?ZjBy4DCp&xZv({X5&b8lYYbsNbvyc-J5mBi;dGwTs zh|Hge=;8-565uZ*J&Y(KB1&}!MMZ5DMa3K1o^Eyy&bCBEPu?W!lN#vuFlHM+y?Kf3 zk%H=)2JL$~1ywSEmxs5aRi6;Qrn7#i{XHj^ywvnj`In*_G3>P8E%g~YcZ?V*c=JzBD%{SAGHO4Mx5Lr@=sFW z?YsE$ZbTzyRJM?=EYd)kg#C4`>Kl<~wJL8$o}H*dHB2a(7I}!?jbVZfNr+fx-`W4B z5dK8X{+J^3_QUU&tmLCZJiT}*Ze~+_r>YF|`jvdTRmtfsjL%CKFX&mdr?h&`9}>ZK zBSp>YWP||sKHE*q$hn@@&Z2juZusP_uw7aW&s0+T2Ltv+n#9WJC(%_G6g<9{!_D5L zr^meWPnL7!dgo<1NJPIVbdYIaCeO*WO#1qPGnq&IZJt|=$h`ZeY+ozGFp7O00gaN; zM>k68dM;XHT{M4kcT@HUiI{f%K19JW6=2Q}r^stl`)tYJysUeRN1N91m(xAo(CXf# z{>jAiNTK+G$7@*`@nR%*?u{f?Aqy_uj=R?1Um9>HUcwd~e*fidsIA_D8#KWvY)!sV z7Xp3ZG#}`DOQG|dJm}Uu8bf2dG<2?30N@r2IJ?uH?$dKG#OPEt)I)5@(iF7 zbmBU|i1MlX!8w^iq@QsVi3YXYU)5EU536Z1okGp(%UMu>M0$6gerA+_Q z!A*h>SPYl%R<=L*bY9E(tF}{5zta6IuTZdp% zNsw*7mPzV}sJLkse|cM5zCd2yL4Jj_=GDj2TKOHSvCqPT9aJwb?hvmo%s0E+>HqY^ z;`Hny#2#VYuAc3^KHa{ndF_Mn+ePK?%+gQWHQRl(mC`pkQ8@=AxKK-)MN3YSR>-u=dX5Bkol1n6^Gt8XwYAnxH$#@GX8L0;1PiOc7GdH&{*k(R5 z*l!sLf*(<10{Zxv12Y)GL23b&3BJRIADk**$XB9ziHf>RZrB{tp3FoX>@~EoGeX++ zgKhGMe`Xl#9&zXm+Sjk1(2^$pc(fM6ZL%tSpP~N}O5y6=3w^CD+SKAGhlfVwmX#4at46w{Oy|sIRjwS-m$9PKoa+ zpE3~Ai+OHUWxy3YI8p9fOo5H2_aGT;W1lCdZe8-Y0KN>31GV<;^EOh;$CgY^lxMj|yOZqXQn$(6djIpb5&i6fnffietM;_1v=X#v zS}j^cbiy0C+jJ^W8?6IwrNoo3vQMu%usblVORn=4h98C%KNi0!lNA25$L31iI}_D8 z74YL`)zHUy_2I7uPi61Dzjo7B+LqatHTS(|`mYBV^|3ETx=n>1qx>7Pj?7glfsug; zr;jx>2Gj=>1&lO`#q~?nUCO2ds-he@$EwD*N9#83ZIB=3Zpe&k6(DsWiaEo@FG4GA zj5u8Gm3;J#IevNkApG+}LF)*uWB+i$P{By;xBW!T&&I!`4&NLS2j0UG;e?yilD;_P z_KYn%4UQKN$rcBw!IWb^i>dNG<{JopL(AvA5(97@BDSWHI6YCdn=f*q?B?;6*VAP^JAZm{wMf-T|CV&|s+Um>dbU>3rW2QA zCWDZo$mGi`OUR3(W|6b^ZeP$hhBeIEBrlV=BEd&%T!hP2_28v?W9Ed z#2Oy-TN<_&yI|!QCsm!^fh*(mc^b9%hb^oIJ93iNl1`GSztTOW*Y(Q_T~I#Y!^k-_ zRvtOb5|>((%ts7q)f!FSJ76riCZ~qhG*8FNw#!&Qe{7!zfFZloG(JJ5mR|Cn=?_O> z8Q~yhUpGyw!E6&xSH~U8H`TX|Jp(KDmmQK2Uypy?a=>1L-*d|I?rXC_{EiNO)p%2j z6u(w;*ZG?KJ&qOZvi>q8?c@EUAEG4=i4FoI+j*dDeDRHf`Bdf;%GS3l>3Jfn1HqE9 zB2InIHontaD^e?7jQ#6rtgeEhDXv|sL4eT9sLpJIvPc8XlT+?}9S zv(7pBcVl@ba)Es1g8}nZ>i!&-h|JD{dkSUZLvyrYPp%2wK4y-=%x4U z8hIKF%03B#GLPk|=M8rEUoFY;eC4Uvw95>hkuAjR6nf;BLgT@+f!tgD7}x`Qt*oU? znb0|G@W^F2MHHw4G;Z$M@N8mn+H*~R!knh6zG~dmw`In?b4k@2kydT3A5xax$mqVk zz|6`Ey0KY82FA)*(C*ptqh0Ooc#eZL4{BZuFeqUGt5s?Cs%A*I*{4Z?H`lVe{nj@M| z{0Uui>2ZDfR91Ri z`NhT~*}iA`&-L|NW=GD3TM9qg9Tu2(k-j0iKzxae_J+dCKVN)uylnJ*`zPhwKfmQa z|9yjjc7EaUf4$xRy!Tn%OQHnc7KKRV|NQSCFJ9;-eR64t7mIbK|6kl${b86;4n#ou zBeQIbr1O9OYXADkZ(0g3m5)s6xo-WpS@@sPUAscIcXzS;!5_!^p8*ztFI?al^V4`6 z{r73pzJ23IPINoT|6(mpFJ1C~h7=RJ_19&4sqh|{;#<_Le_P*|L}45BwDUS46CKfi z*$U@hTZx$XpNaivV*lB(|Ac~nLcu>V_QpTSi|qde6@-b8NqjAIdt}}9_6jl>YuZB( z^@wDC*d0HTQe0GY{}|KDS2p1&j&O#(?qo8q)T<-@Yo`AseHj1+tv&&$62G=zePyPe zw~LA!gZ-Do5US&2&rhbE+#;#O=c@H!c-9hDl38!t63@$jMFk2zpi&XKlHAcKv)^ICA?6)zBf2USDXcnp;05x*;Ior` z%OMv(rVl^q{y2hv!=(WM3zCG#(SoDaVUM@O*8SFJgBHrsFHIfUYyHY1oRY<==Synl zO2mSct+5rHe}#G4MgSspNR7#*099Iao;nt0=4@^)oOx-c7qkcLz3=96BuMl86|6o? z`*u-wP;PVi@$5w$qv=;2ti~IeSs(O8-9-l}p14UV-S=O2_*(xI8Z0f^h&v8iSkeMhnTH(tq}gZJwcl!DqHYQl zye94Qv00`4x`>_n$@;1}%b0RQwM+Zqh?f3pbI#*9>Xx%prygJQ4A!FOz~ID7xO7+f zOuHIflxFvl*6yQ6mosb-{@uDeQUV#sL&=G^y)J%+8m)Bk6r8R1p_*+NxLWTA<>Cic zMjG40a(24uX1QFTGiBEaU(e4FtaO?XcM)-&soguH07cx~gz^OhZ$D7t$6#R`gSvXtLhQ(i~ zc4~wRb7>Pk#eHi(KhL^%gIs<|3Wr^UwV!U5JU8Ii`dbOZA~5uAIB5EN@sFuhQ#L&V zTU<;lyT_{E96Oz!kxTnt!fk_3LhG>4?W{0_O_f&Wy`@o+K?=D*0rq&A{lmb^){Xls zG7j!N!Ez~N=sC3Z6bgq!dmL?mHs?{GX3C2+VBxJsM5t}Jj1}Vg%U=)}dmEHSiWf1) z^S9^YMIunxaPN=JVSct`(NarotxYp9sO~iFE|6F0x{W2s%dIuh~D5Lcdb`IIWR$jI<{xwxtPKvs9I3{W~`NDbOl#4{`UYyFfhx z;(_feeo~33yr*%zS=JIEhXxl|LHa;7-UdMf&lR!M+wFaz77kZtZ~M+;T}9glUl+CP zm1KRSc0Qb=VVjn5b3)=Rix{sgb|#hq(QWu#&)l|isK#wKu{*;cf-~gI;bgvD>mfXX zDbpZo2=tffRliJ}o5PUziXL)QCGjvybCxAIj|M4!x46ESyz02&bULH0e8GH_7fwDX zxqae39~u@T(BXk_V*W%kM&kss61NP_lDWsPfyKP}7ueb9$)gcXYa$a$c8IZpoc zBq{L%N3z|Lk8! zMV#pK&ibQVY%j`IBkWM+M=2Q}rb`AZ5UwrxRvE@_jkgZhM~d_^s3Z(zOuSo}EwNe0 z-<~s3%=x3T_NF)8B12=3RW^-lTunXSDnBBjcTG^+Xg+Ap1DHAsE z1+K%T%;19fYo4S6=%Hcl?{wSHkm@txyF&gsYO7PKTVkJIH2F-Vl?x@WHe;#}in&-_ z$~Bcf>y;Qq#9_1x9kcZ!%kVRR5Ri`MbMAnC>lcJ;`*S>?hM1G_3u{{{lG^8d;Ilz zS`l|)@!Lf2RJl(zuWrqiEc0`Cd1p0kfqDP>e1}|OL8ml;<+Mm#Qp{b~NfIhh&QxmT>!TIeTd4KRH_q9H|?ns4Mw?3XOo&0hz0gL3!FBfsF8)2669DO8z@>R0yk^B|X zzwCgpLRBD5ikR&9ZcmFVg6gA**=00khHvI&RkuHqkG%L-B)M`8*g%vYv+OgfoIyDo zLR_6|!#RCB@>S1AtGs(BzgutK#^BIMzUuW~xn7-t$$xpu6+TS^e41!GLweQ2m)$&2 z>Jk(gl#1QVKBK3k^*oM?El+KdHD4FsLP=vw`e08LG_$gt{))Ve6wbfpC%E_~zikj^ zZAq(d+?L_!3USZ0-iUpXLoX6s)_nXpCsKOVWR`bFpA$|4J}GeKL=DLJy#P?lR3O7& z$IWuNx8-wL*RbAtTHw)^j;{?IEFt;qqmI=~t;a$&V)tGHL`=V51f6Lcg=ldYtNkF2-maOgm=Rp~xamp_q71Eb#sT^4`r`M#T$k$UN|R*IzwLGHDq@#!zBcp$ z7H*9g&9oqVXq1QHJjRY35ODb*86=OL zxCvxi)M5q5i2}TE@$p&rqWf!keCuZ`sEn*rEY zK1!LhOm5_7ZmM}wO<{W7PNcD7svvBPUvPS7s5!*IetRso_pju3SRR?WNZ=@Fi9+TD zqSSg}#U@LB4Wt~20yS1n!9N4ByFI#0o__l4UK`{s=xzmx(7uiVA z@jp#pbrLVEl0!CnMcv$`EPc*Fkz(qRwFi`$$;D2N3(r%{ub=0)nAu>|w%_N?OnPE& zUU5NPW_xfU^ZeC}Il>Pv%XW=wKG+0jC#!3@uYu#6&WD+Czu)9%7mc6>^s~w3C{jiO zcI9`Yluj8)-#nAGxX8;1If*Y{B<~ZqpwajnJo|C!obS&nf4|JF&ZG0pIVVve6SELS zz)SQ?wo?Yc%$gX<2~X_SPP+H=S8T;Z6z2%{uWa3=rYxMwyNU3~i+hu7MXPG+P;F>m zh|1jD$T7jyZx&xYM*5*+E=crs|c|UC6`9NgWeoL2?9l1D|Auhsfq8wPOjXYlFi+$L_mX z60e!E18z9~g5UzF0?t95GFzZUEijXt&MmlV_gA2lh0m_3v$Cul#abx<_A_J1v zUOpwzo+tAFgF<=E2?7<7nt>(8mOJM?EAJnpv_&sN+P`cEOxb1#Uv>%!p3Sp!vStvB z{<61)0!2#9`O5?YT(jkXnBEmWZcve)scpnL4$vFGlr${pEi5Q!-(`VE5dx(8TZZTY zrgCWJ81>8?Fu}%=KR$4mk9s;q=$i*|9Rj3V<9@HM?(}-@s@HA^O$0t;``wCL-Tpzj z3gM_P+depQVCHwir+5)988Djx{8Oqi$t-g-{uBXtmmALcj67#TF7FOx{(boZHzM~r z2#nS?C^knv9r&QJK-^batLeY~d*UG>Zk#IIwce9l-Z=lyMuq~-e>oCZCa=kack61& zGgZ&ICWsc~?7g+7RbqMK5lohf-^}z*dE0iH^0V8#-@cW-sHEOXatlQIIsuFqt#py; zG|Nu0@Kq<)jrdXPvDB6wM36c=9D!TzUT6@N{9*k~!87r{C2nrTuzSL<=2Oi>1;}>{ zY=8f5A2)VonXYtTHw*oJr|9(4^7yl~ssmaJqMQ}e2J;bAB{9{ob zVqa-{i3WMKD}i90n5@LOo?cVrwlZN3p)hu-35pKM3L5XR48yFJ?3PYny)o2A3^~=! z-|MAFi1b+Mjwm&?FPnHVN0`q!#ORfE-C^l8d}S7hU#QIMeg*00c=~1P5vcxPgS9PA z0?CnLY}d1g&Y@0U>-KtS73Nghc=sG#187yVlcD;*q$?vpWuV-XL~T)^(q)dPy;j}l zrU*<%RgTHGcB}i2*NfTv${Nk;Lk{INUH6F+t_Q!*U6W4RoUdR;HNFUj*P06~e7SsdhU) zsBKA0mK{u3EGmCe7SV3j^NSWWD55{kPk7tPzstP>mz9u|eLsoEV{6OLJk{<%)S^0> zHjOupe#?m8N3Gkpwc?Bv#%JlI?@#>g5a+5XTg?>(3D9g#aT zjAj8xaeL#4-AK%822XMMnXqNmbA58JfvJ+k&nz2BK8$coYZM0s4fxC;&2}Zd{aj8# zI5#=ynI3yRot2NccwNlV+X@xvzmdM06tsZ3ACx*+s3rRCknXGo`8bjX8YnIYCo~c) z4V;IS+CDlJKb`a`39bveDZVvq9acV|R~6UHxvwZmc%^pG%%RzwZz#R<{T$?Y7HsP6J=ehTwDe>^y0F)Uql1_?sS0 z+UC0`p7YDw*(sg&s+0<`$cf!%0=Q~>w!!{n;*S1n%l4Khb_r?V5R&BWPhkvHO_1iZ zjZGVV{XAuWXL6A|oW~{R!eZd7=Q#(-4WCXso($=}-%YSHdIR4l

td3b2KLJ^LKR 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

sy4<6Ty0kC2mSOwQxN1 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

21XP`27%cX9rchd()vctMs0yZ*SS>m4A-b|f4# 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 z { @@ -56,6 +56,8 @@ const OnboardingDialog = NiceModal.create(() => { editor_type: editorType, custom_command: editorType === EditorType.CUSTOM ? customCommand || null : null, + remote_ssh_host: null, + remote_ssh_user: null, }, } as OnboardingResult); }; diff --git a/frontend/src/hooks/useOpenInEditor.ts b/frontend/src/hooks/useOpenInEditor.ts index cb44a291..d8062483 100644 --- a/frontend/src/hooks/useOpenInEditor.ts +++ b/frontend/src/hooks/useOpenInEditor.ts @@ -19,21 +19,15 @@ export function useOpenInEditor( const { editorType, filePath } = options ?? {}; try { - const result = await attemptsApi.openEditor( + const response = await attemptsApi.openEditor( attemptId, editorType, filePath ); - if (result === undefined && !editorType) { - if (onShowEditorDialog) { - onShowEditorDialog(); - } else { - NiceModal.show('editor-selection', { - selectedAttemptId: attemptId, - filePath, - }); - } + // If a URL is returned, open it in a new window/tab + if (response.url) { + window.open(response.url, '_blank'); } } catch (err) { console.error('Failed to open editor:', err); diff --git a/frontend/src/hooks/useOpenProjectInEditor.ts b/frontend/src/hooks/useOpenProjectInEditor.ts index 31f145a5..667837fc 100644 --- a/frontend/src/hooks/useOpenProjectInEditor.ts +++ b/frontend/src/hooks/useOpenProjectInEditor.ts @@ -12,7 +12,12 @@ export function useOpenProjectInEditor( if (!project) return; try { - await projectsApi.openEditor(project.id, editorType); + const response = await projectsApi.openEditor(project.id, editorType); + + // If a URL is returned, open it in a new window/tab + if (response.url) { + window.open(response.url, '_blank'); + } } catch (err) { console.error('Failed to open project in editor:', err); if (!editorType) { diff --git a/frontend/src/i18n/locales/en/settings.json b/frontend/src/i18n/locales/en/settings.json index 0e90f29b..60a38ceb 100644 --- a/frontend/src/i18n/locales/en/settings.json +++ b/frontend/src/i18n/locales/en/settings.json @@ -58,7 +58,20 @@ }, "customCommand": { "label": "Custom Editor Command", + "placeholder": "e.g., code, subl, vim", "helper": "Enter the command to launch your custom editor. This will be used to open files." + }, + "remoteSsh": { + "host": { + "label": "Remote SSH Host (Optional)", + "placeholder": "e.g., hostname or IP address", + "helper": "Set this if Vibe Kanban is running on a remote server. When set, clicking \"Open in Editor\" will generate a URL to open your editor via SSH instead of spawning a local command." + }, + "user": { + "label": "Remote SSH User (Optional)", + "placeholder": "e.g., username", + "helper": "SSH username for the remote connection. If not set, VS Code will use your SSH config or prompt you." + } } }, "github": { @@ -71,6 +84,7 @@ "or": "OR", "pat": { "label": "Personal Access Token", + "placeholder": "ghp_xxxxxxxxxxxxxxxxxxxx", "helper": "GitHub Personal Access Token with 'repo' permissions. Use this if OAuth permissions are insufficient for private repositories and organisation owned repositories.", "createTokenLink": "Create token here" } diff --git a/frontend/src/i18n/locales/es/settings.json b/frontend/src/i18n/locales/es/settings.json index 159c9ea8..ad8c8a20 100644 --- a/frontend/src/i18n/locales/es/settings.json +++ b/frontend/src/i18n/locales/es/settings.json @@ -58,7 +58,20 @@ }, "customCommand": { "label": "Comando de Editor Personalizado", + "placeholder": "ej., code, subl, vim", "helper": "Ingresa el comando para lanzar tu editor personalizado. Se utilizará para abrir archivos." + }, + "remoteSsh": { + "host": { + "label": "Host SSH Remoto (Opcional)", + "placeholder": "ej., nombre de host o dirección IP", + "helper": "Configura esto si Vibe Kanban se ejecuta en un servidor remoto. Cuando se establece, al hacer clic en \"Abrir en Editor\" se generará una URL para abrir tu editor a través de SSH en lugar de ejecutar un comando local." + }, + "user": { + "label": "Usuario SSH Remoto (Opcional)", + "placeholder": "ej., nombre de usuario", + "helper": "Nombre de usuario SSH para la conexión remota. Si no se establece, VS Code usará tu configuración SSH o te lo pedirá." + } } }, "github": { @@ -71,6 +84,7 @@ "or": "O", "pat": { "label": "Token de Acceso Personal", + "placeholder": "ghp_xxxxxxxxxxxxxxxxxxxx", "helper": "Token de Acceso Personal de GitHub con permisos 'repo'. Úsalo si los permisos OAuth son insuficientes para repositorios privados y repositorios de organizaciones.", "createTokenLink": "Crear token aquí" } diff --git a/frontend/src/i18n/locales/ja/settings.json b/frontend/src/i18n/locales/ja/settings.json index 372d003c..a66d95ab 100644 --- a/frontend/src/i18n/locales/ja/settings.json +++ b/frontend/src/i18n/locales/ja/settings.json @@ -58,7 +58,20 @@ }, "customCommand": { "label": "カスタムエディターコマンド", + "placeholder": "例: code, subl, vim", "helper": "カスタムエディターを起動するコマンドを入力してください。ファイルを開くために使用されます。" + }, + "remoteSsh": { + "host": { + "label": "リモートSSHホスト(オプション)", + "placeholder": "例: ホスト名またはIPアドレス", + "helper": "Vibe Kanbanがリモートサーバーで実行されている場合に設定してください。設定すると、「エディターで開く」をクリックしたときに、ローカルコマンドを実行する代わりにSSH経由でエディターを開くURLが生成されます。" + }, + "user": { + "label": "リモートSSHユーザー(オプション)", + "placeholder": "例: ユーザー名", + "helper": "リモート接続のSSHユーザー名。設定されていない場合、VS CodeはSSH設定を使用するか、入力を求めます。" + } } }, "github": { @@ -71,6 +84,7 @@ "or": "または", "pat": { "label": "個人用アクセストークン", + "placeholder": "ghp_xxxxxxxxxxxxxxxxxxxx", "helper": "「repo」権限を持つGitHub個人用アクセストークン。OAuthの権限がプライベートリポジトリや組織所有のリポジトリに対して不十分な場合に使用してください。", "createTokenLink": "ここでトークンを作成" } diff --git a/frontend/src/i18n/locales/ko/settings.json b/frontend/src/i18n/locales/ko/settings.json index f857de78..a863ae62 100644 --- a/frontend/src/i18n/locales/ko/settings.json +++ b/frontend/src/i18n/locales/ko/settings.json @@ -58,7 +58,20 @@ }, "customCommand": { "label": "사용자 정의 에디터 명령", + "placeholder": "예: code, subl, vim", "helper": "사용자 정의 에디터를 실행하는 명령을 입력하세요. 파일을 여는 데 사용됩니다." + }, + "remoteSsh": { + "host": { + "label": "원격 SSH 호스트 (선택사항)", + "placeholder": "예: 호스트 이름 또는 IP 주소", + "helper": "Vibe Kanban이 원격 서버에서 실행 중인 경우 설정하세요. 설정하면 \"에디터에서 열기\"를 클릭할 때 로컬 명령을 실행하는 대신 SSH를 통해 에디터를 여는 URL이 생성됩니다." + }, + "user": { + "label": "원격 SSH 사용자 (선택사항)", + "placeholder": "예: 사용자 이름", + "helper": "원격 연결을 위한 SSH 사용자 이름입니다. 설정하지 않으면 VS Code가 SSH 설정을 사용하거나 입력을 요청합니다." + } } }, "github": { @@ -71,6 +84,7 @@ "or": "또는", "pat": { "label": "개인 액세스 토큰", + "placeholder": "ghp_xxxxxxxxxxxxxxxxxxxx", "helper": "'repo' 권한이 있는 GitHub 개인 액세스 토큰입니다. OAuth 권한이 비공개 저장소 및 조직 소유 저장소에 충분하지 않은 경우 사용하세요.", "createTokenLink": "여기에서 토큰 생성" } diff --git a/frontend/src/lib/api.ts b/frontend/src/lib/api.ts index 8f184aeb..f867fedb 100644 --- a/frontend/src/lib/api.ts +++ b/frontend/src/lib/api.ts @@ -91,6 +91,10 @@ export interface FollowUpResponse { created_new_attempt: boolean; } +export interface OpenEditorResponse { + url: string | null; +} + export type Ok = { success: true; data: T }; export type Err = { success: false; error: E | undefined; message?: string }; @@ -232,7 +236,10 @@ export const projectsApi = { return handleApiResponse(response); }, - openEditor: async (id: string, editorType?: EditorType): Promise => { + openEditor: async ( + id: string, + editorType?: EditorType + ): Promise => { const requestBody: any = {}; if (editorType) requestBody.editor_type = editorType; @@ -242,7 +249,7 @@ export const projectsApi = { Object.keys(requestBody).length > 0 ? requestBody : null ), }); - return handleApiResponse(response); + return handleApiResponse(response); }, getBranches: async (id: string): Promise => { @@ -455,7 +462,7 @@ export const attemptsApi = { attemptId: string, editorType?: EditorType, filePath?: string - ): Promise => { + ): Promise => { const requestBody: { editor_type?: EditorType; file_path?: string } = {}; if (editorType) requestBody.editor_type = editorType; if (filePath) requestBody.file_path = filePath; @@ -469,7 +476,7 @@ export const attemptsApi = { ), } ); - return handleApiResponse(response); + return handleApiResponse(response); }, getBranchStatus: async (attemptId: string): Promise => { diff --git a/frontend/src/pages/settings/GeneralSettings.tsx b/frontend/src/pages/settings/GeneralSettings.tsx index 3486106c..53ddd3f5 100644 --- a/frontend/src/pages/settings/GeneralSettings.tsx +++ b/frontend/src/pages/settings/GeneralSettings.tsx @@ -374,7 +374,8 @@ export function GeneralSettings() { className="w-full h-10 px-2 flex items-center justify-between" > - {currentProfileVariant?.variant || 'DEFAULT'} + {currentProfileVariant?.variant || + t('settings.general.taskExecution.defaultLabel')} @@ -475,7 +476,9 @@ export function GeneralSettings() { updateDraft({ @@ -491,6 +494,62 @@ export function GeneralSettings() {

)} + + {(draft?.editor.editor_type === EditorType.VS_CODE || + draft?.editor.editor_type === EditorType.CURSOR || + draft?.editor.editor_type === EditorType.WINDSURF) && ( + <> +
+ + + updateDraft({ + editor: { + ...draft!.editor, + remote_ssh_host: e.target.value || null, + }, + }) + } + /> +

+ {t('settings.general.editor.remoteSsh.host.helper')} +

+
+ + {draft?.editor.remote_ssh_host && ( +
+ + + updateDraft({ + editor: { + ...draft!.editor, + remote_ssh_user: e.target.value || null, + }, + }) + } + /> +

+ {t('settings.general.editor.remoteSsh.user.helper')} +

+
+ )} + + )} @@ -550,7 +609,7 @@ export function GeneralSettings() { updateDraft({ diff --git a/shared/types.ts b/shared/types.ts index 4ced17e1..bffc0ac6 100644 --- a/shared/types.ts +++ b/shared/types.ts @@ -100,7 +100,7 @@ export type NotificationConfig = { sound_enabled: boolean, push_enabled: boolean export enum ThemeMode { LIGHT = "LIGHT", DARK = "DARK", SYSTEM = "SYSTEM" } -export type EditorConfig = { editor_type: EditorType, custom_command: string | null, }; +export type EditorConfig = { editor_type: EditorType, custom_command: string | null, remote_ssh_host: string | null, remote_ssh_user: string | null, }; export enum EditorType { VS_CODE = "VS_CODE", CURSOR = "CURSOR", WINDSURF = "WINDSURF", INTELLI_J = "INTELLI_J", ZED = "ZED", XCODE = "XCODE", CUSTOM = "CUSTOM" }