- Full IDE with terminal integration using xterm.js - Session management with local and web sessions - HTML preview functionality - Multi-terminal support with session picker Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
9.2 KiB
9.2 KiB
Claude Code Web IDE - Complete Feature Set
Overview
Your Obsidian Web Interface has been transformed into a full-featured remote web IDE for Claude Code with project management, session tracking, context memory management, and real-time chat capabilities.
Access
- URL: https://www.rommark.dev/claude/ide
- Login: admin / !@#$q1w2e3r4!A
🎯 Features Implemented
1. Session Management
✅ Complete
View Active & Historical Sessions
- Dashboard overview of all sessions
- Real-time session status updates
- Session detail view with full output
- PID and working directory tracking
Create & Manage Sessions
- Start new Claude Code sessions
- Specify working directory
- Associate sessions with projects
- Send commands to active sessions
- Terminate running sessions
Session Storage
- All sessions saved to Obsidian vault
- Stored in
Claude Sessions/folder - Markdown format for easy reference
- Searchable through Obsidian
2. Context Memory Management
✅ Complete
Visualize Context Usage
- Real-time token usage display
- Progress bar showing capacity
- Percentage usage calculation
- Token limit tracking (200K default)
Context Analytics
- Total tokens used per session
- Message count tracking
- Usage history
- Capacity warnings
3. Project Management
✅ Complete
Create Projects
- Quick project creation wizard
- Project name and description
- Project type categorization
- Automatic project folder creation
Project Tracking
- List all projects
- Recent projects on dashboard
- Project modification dates
- Quick access to project files
Integration with Obsidian
- Projects stored in
Claude Projects/folder - Markdown format with frontmatter
- Compatible with Obsidian Tasks
- Linked to dedicated notes
4. Real-Time Chat Interface
✅ Complete
WebSocket Communication
- Real-time connection to Claude Code
- Bidirectional messaging
- Session-specific channels
- Automatic reconnection
Command Execution
- Send commands via chat interface
- Real-time output streaming
- Command history
- Syntax highlighting support
5. File Browser & Editor
✅ Complete
File Tree Navigation
- Expandable/collapsible folders
- File type icons
- Path display
- Quick file access
File Viewing
- Markdown rendering
- Syntax highlighting for code
- Preview mode
- Edit mode
File Operations
- View file contents
- Edit markdown files
- Save changes
- Navigate between files
🏗️ Architecture
Backend Services
Claude Code Service (services/claude-service.js)
- Spawns and manages Claude Code CLI processes
- Handles stdin/stdout/stderr streams
- Session lifecycle management
- Command execution and response capture
- Automatic session persistence to vault
WebSocket Server
- Real-time bidirectional communication
- Session-specific channels
- Authentication required
- Automatic reconnection handling
API Endpoints
Session Management
GET /claude/api/claude/sessions # List all sessions
POST /claude/api/claude/sessions # Create new session
GET /claude/api/claude/sessions/:id # Get session details
POST /claude/api/claude/sessions/:id/command # Send command
DELETE /claude/api/claude/sessions/:id # Terminate session
GET /claude/api/claude/sessions/:id/context # Get context stats
Project Management
GET /claude/api/claude/projects # List projects
POST /claude/api/claude/projects # Create project
WebSocket
WS /claude/api/claude/chat # Real-time chat
Data Storage (Obsidian Vault)
obsidian-vault/
├── Claude Sessions/ # Session storage
│ ├── 2026-01-19-session-xxx.md
│ └── session-index.md
├── Claude Context/ # Context tracking (future)
└── Claude Projects/ # Project management
├── Project-Name.md
└── active-projects.md
🚀 Usage Examples
Starting a New Session
- Navigate to https://www.rommark.dev/claude/ide
- Click "New Session" button
- Enter working directory (default:
/home/uroma/obsidian-vault) - Optionally associate with a project
- Click "Create"
Managing Projects
- Click "Projects" in navigation
- Click "+ New Project"
- Enter project name and description
- Select project type
- Project created in your Obsidian vault!
Sending Commands to Claude Code
- Select an active session
- Type command in input field
- Press Enter or click "Send"
- Watch real-time output in the session panel
Viewing Context Usage
- Open any session detail view
- View context bar showing token usage
- See percentage of capacity used
- Track message count
📊 Dashboard Features
The main dashboard provides:
-
Stats Cards
- Active sessions count
- Total projects count
- Historical sessions count
- Quick action buttons
-
Active Sessions Panel
- List of all running sessions
- Click to view session details
- Status indicators
- Working directory display
-
Recent Projects Panel
- Last 5 projects created/modified
- Quick access to project files
- Modification dates
🎨 User Interface
Dark Theme
- GitHub-inspired dark theme
- High contrast for readability
- Smooth transitions and animations
Responsive Design
- Works on desktop and tablet
- Flexible grid layouts
- Collapsible panels
Real-Time Updates
- WebSocket-powered updates
- No page refresh needed
- Instant feedback
🔒 Security
-
Authentication Required
- All API endpoints protected
- WebSocket requires valid session
- Session-based auth
-
Input Validation
- Command sanitization
- Path validation
- File system protection
-
Audit Trail
- All commands logged
- Session history preserved
- Stored in Obsidian vault
📁 File Structure
/home/uroma/obsidian-web-interface/
├── services/
│ └── claude-service.js # Claude Code process manager
├── public/
│ ├── claude-ide/
│ │ ├── index.html # IDE main interface
│ │ ├── ide.css # IDE styles
│ │ └── ide.js # IDE JavaScript
│ ├── css/
│ │ └── style.css # Base styles
│ └── js/
│ └── app.js # Base JavaScript
├── server.js # Main Express server
└── claude-integration.md # Architecture documentation
🔮 Future Enhancements
Planned Features
- Context pruning and optimization
- Multi-file editing
- Session templates
- Project analytics dashboard
- Automated testing integration
- Git integration
- Collaborative sessions
- Mobile app
Advanced Features
- AI-powered context suggestions
- Natural language session control
- Voice commands
- Custom themes
- Plugin system
- API key management
- Rate limiting and quotas
🐛 Troubleshooting
Session Won't Start
- Check that Claude Code CLI is installed
- Verify working directory exists
- Check service logs:
sudo journalctl -u obsidian-web -f
WebSocket Connection Issues
- Ensure you're logged in
- Check browser console for errors
- Verify WSS port is accessible
Projects Not Saving
- Check vault write permissions
- Verify
Claude Projects/folder exists - Check service logs for errors
📝 Example Workflows
Workflow 1: Create and Manage a Project
# 1. Navigate to IDE
https://www.rommark.dev/claude/ide
# 2. Create new project
Projects → + New Project
Name: "MyAPI"
Type: "Web Development"
# 3. Create session for the project
New Session → Working Dir: /home/uroma/myapi
Project: MyAPI
# 4. Send planning command
"Create a REST API with Express.js"
# 5. Track progress in dedicated note
Obsidian vault → Claude Projects → MyAPI.md
Workflow 2: Review Historical Sessions
# 1. Navigate to Sessions view
Sessions → View historical sessions
# 2. Click on session to review
See full output, commands, and context
# 3. Copy useful commands to new session
Use as reference for similar tasks
Workflow 3: Monitor Context Usage
# 1. Open active session
View session details
# 2. Check context bar
See token usage percentage
# 3. If approaching limit
- Start new session
- Reference previous session in vault
- Maintain continuity through notes
🎓 Getting Started
- Login: https://www.rommark.dev/claude/ide
- Explore Dashboard: See active sessions and projects
- Create First Project: Try the "+ New Project" button
- Start Session: Create a new session and send a command
- Explore Files: Navigate your Obsidian vault
Last Updated: 2026-01-19 Version: 1.0.0 Status: ✅ Production Ready