Clide is being rebuilt as a Flutter desktop app. The Python Textual
implementation moves wholesale into legacy/ rather than being deleted:
its pane model, panel set, git skills, and panel communication design
are real thought that should remain readable next to the new code
while the rebuild finds its shape. Git's rename tracking preserves
history, so `git log -- legacy/` still works.
The Flutter rebuild lives at the repo root alongside a Go sidecar
(the architecture claudian was heading toward, which folds into
clide as a core component rather than a separate plugin project).
Bootstrap of the new shape lands in subsequent commits.
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
- CHANGELOG: add v1.2.0 with clide-web, database layer, workspace tabs,
and ttyd/zellij removal
- CLAUDE.md: add clide-web to tech stack, dev commands, and project
structure
- web-deployment.md: document /projects/<name> routing, setup wizard,
auto-respawn, database schema, and make targets
- install-clide-web.sh: update URLs to path-based routing
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Use printf instead of echo for consistent ANSI color rendering
across shells and make implementations.
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Change JiraView, TodosView, and ProblemsView backgrounds from
\$background to \$surface so the right panel visually matches the
left sidebar panel.
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Remove all external binary dependencies that clide-web replaces:
- ttyd-nerd-font git submodule (C binary)
- zellij config (config.kdl, bare.kdl)
- clide-launcher shell script
- update-ttyd.sh build script
Update systemd service and install script for the new FastAPI stack.
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Python web server that wraps Clide for browser access. Replaces the
previous ttyd (C binary) + zellij (Rust binary) stack with a single
FastAPI application using tmux for session persistence.
Key features:
- WebSocket ↔ PTY bridge via tmux attach
- Project switching via /projects/<name> URL routing
- Vendored xterm.js for offline LAN operation
- Auto-respawn on Clide exit (tmux pane-died hook)
- Setup wizard for first-run configuration
- No scrollbar (TUI manages its own scrolling)
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Add shared database infrastructure to clide core for use by both
the CLI and clide-web. SQLModel provides Pydantic-native models
that double as SQLAlchemy table definitions.
Models: Project, Session, UserPreference, ConnectionLog.
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Replaces the fixed 3-tab workspace (Editor/Diff/Terminal) with a VS Code-style
dynamic tab system. Users can now open multiple files, terminals, and diffs in
closeable tabs with type icons, modified indicators, and file deduplication.
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
- Add ttyd-nerd-font submodule with embedded JetBrains Mono Nerd Font
for proper icon rendering in browser via ttyd
- Add Ctrl+Shift+V / Shift+Insert paste support in ttyd frontend
- Strip Zellij env vars from PTY child processes to prevent workspace
terminal from inheriting Zellij session context
- Launch PTY commands through login shell for proper PATH resolution
- Use /etc/passwd shell lookup instead of $SHELL (Zellij overrides it)
- Soften ANSI 256-color palette to match modern dark themes
- Handle Nerd Font PUA glyphs as width 1 in pyte terminal emulator
- Fix brightmagenta typo in pyte graphics
- Update install script to build ttyd from submodule source
- Add web deployment TODO items for image paste and context menu
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Extract TerminalDisplay from ClaudePanel into a shared widget module
and rewrite TerminalPane to use it. The workspace terminal now runs
an interactive shell via PTY instead of a simple command runner,
supporting colors, escape sequences, tab completion, and interactive
programs.
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Service: add TimeoutStopSec=5 and SendSIGKILL=yes so restarts don't
hang on stubborn claude processes. Reduce RestartSec to 3s.
Zellij: disable session serialization, release notes, and splash screen
so sessions always start fresh with the bare layout.
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Pull ttyd/zellij/clide-launcher scripts into deploy/ so the web access
layer lives with the project. Zellij is configured in locked mode with a
bare layout so it only provides session persistence without intercepting
keys or showing UI. Remove Ctrl+G goto-line binding from Clide to avoid
conflict with Zellij's unlock key.
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Documentation:
- Rewrite README.md with current features and git operations
- Rewrite docs/ARCHITECTURE.md with layered architecture details
- Rewrite docs/tui-ide-spec.md with Alt-key shortcuts
- Add docs/code-organization.md for component architecture
- Add docs/user-manual.md for end users
- Update TODO.md to mark completed items
Code fixes:
- Fix undefined 'event' variable in diff_pane.py (was _event)
- Use ternary operator in editor.py save_file method
- Clean up imports in claude_events.py and syntax_service.py
- Auto-fix import sorting across multiple files
Config:
- Add snapshot report path to pyproject.toml pytest options
- Exclude clide/vendor from ruff linting
- Ignore TCH002/TCH003 type-checking import rules
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
Release version 1.0.0 with comprehensive changelog documenting
all features added since initial development including skill
installer, TileList component, file watcher, and theme system.
Co-Authored-By: Claude <noreply@anthropic.com>
Update test fixtures and snapshots to reflect TileList component
and panel widget refactoring. Adjust integration tests for new
file browser behavior.
Co-Authored-By: Claude <noreply@anthropic.com>
Add reusable TileListView component for consistent card-style lists.
Refactor sidebar and context panels to use improved git integration,
enhanced branch status display, and better component organization.
Key changes:
- New TileListView/TileItem for reusable styled lists
- Enhanced git controller with graph traversal
- Improved branch status with remote tracking info
- Better file watcher integration
Co-Authored-By: Claude <noreply@anthropic.com>
Add SkillInstaller service to install bundled skill templates
(commit, branch, push, pull, stash) to user or project scope.
Includes template management and installation status checking.
Co-Authored-By: Claude <noreply@anthropic.com>
- Parse TODO.md markdown checkboxes and display in collapsible section
- Add ProjectTodoItem model for TODO.md items with section/subsection support
- Swap context panel tab order to: Jira, TODOs, Problems
- Add "Create TODO.md" button when file doesn't exist with template
- Click project TODO items to navigate to TODO.md at that line
- Add header to TODO.md explaining Clide integration format
- Add pre-commit config with ruff linting and formatting
- Update ruff ignore rules for Textual patterns
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
- Implement file system watching with watchdog for real-time file panel updates
- Add FileEventMessage for event-driven file change handling
- Integrate Claude events parsing for IDE awareness of Claude actions
- Add extension hooks for file changes (clide_on_file_changed, clide_on_file_saved)
- Enhance editor pane with syntax highlighting service
- Improve workspace panel with action bar and file operations
- Update Claude panel with PTY terminal integration
- Add TODO.md to track long-term project items
- Update keybindings to use Alt-based shortcuts
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
Expand the README to better communicate Clide's value proposition,
including layout diagram, feature breakdown, tech stack, getting
started instructions, and keybindings reference.
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
- Move src/clide/ to clide/ (flatten directory structure)
- Add SettingsService for persistent user preferences
- Settings stored in ~/.clide/settings.json
- Persist theme, panel visibility, and compact mode state
- Fix terminal rendering glitch with throttled refresh (~60fps)
- Update pyproject.toml, Makefile, and tests for new structure
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
Wireframes created in Penpot showing the main UI layouts:
- Main Layout: 3-panel view with sidebar, workspace+Claude, context panel
- Compact Mode: Claude-focused view taking full center area
- Git Changes: Git panel with staged/unstaged files and diff viewer
- Keybindings: Keyboard shortcuts reference modal
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
Set up the TUI IDE wrapper for Claude Code CLI with:
- Core app structure using Textual framework
- Panel architecture (sidebar, workspace, claude, context)
- Theme system with 22 built-in themes (Summer Night default)
- Pydantic models for configuration and data
- Makefile for development commands
- Project documentation and specs
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>