feat: Add SSH remote execution for multi-host Claude sessions
- Backend: SSH execution via spawn() with -T flag for JSON streaming - Backend: PATH setup for non-login shells on remote hosts - Backend: History loading via SSH (tail -n 2000 for large files) - Frontend: Host selector UI with colored buttons in Sidebar - Frontend: Auto-select first project when host changes - Frontend: Pass host parameter to history and session APIs - Docker: Install openssh-client, mount SSH keys Enables running Claude sessions on remote hosts via SSH while viewing them through the web UI. 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
This commit is contained in:
@@ -101,6 +101,7 @@ function App() {
|
||||
} = useClaudeSession();
|
||||
|
||||
const [selectedProject, setSelectedProject] = useState('/projects/claude-web-ui');
|
||||
const [selectedHost, setSelectedHost] = useState('local');
|
||||
const [sidebarOpen, setSidebarOpen] = useState(true);
|
||||
const [resumeSession, setResumeSession] = useState(true);
|
||||
|
||||
@@ -114,7 +115,7 @@ function App() {
|
||||
}, [setMessages]);
|
||||
|
||||
const handleStartSession = () => {
|
||||
startSession(selectedProject, resumeSession);
|
||||
startSession(selectedProject, resumeSession, selectedHost);
|
||||
};
|
||||
|
||||
// Handle slash commands
|
||||
@@ -167,6 +168,8 @@ function App() {
|
||||
onToggle={() => setSidebarOpen(!sidebarOpen)}
|
||||
selectedProject={selectedProject}
|
||||
onSelectProject={setSelectedProject}
|
||||
selectedHost={selectedHost}
|
||||
onSelectHost={setSelectedHost}
|
||||
sessionActive={sessionActive}
|
||||
onStartSession={handleStartSession}
|
||||
onStopSession={stopSession}
|
||||
|
||||
Reference in New Issue
Block a user