Overview
Jean includes a comprehensive suite of developer tools that integrate directly into the chat interface, providing quick access to terminals, file diffs, previews, and your favorite code editor.Key Capabilities
Integrated Terminal
Architecture:- Built on xterm.js for rendering
- PTY (pseudoterminal) backend in Rust
- Multiple terminals per session
- Persistent across app restarts
- User opens terminal panel
- Tauri command
create_terminalspawns PTY - WebSocket connection established for I/O
- xterm.js renders output
- User input sent via
write_to_terminalcommand - Terminal persists until closed or app exits
- Resizable split panel
- Multiple tabs
- Full shell capabilities
- Copy/paste support
- Scrollback buffer
- ANSI color support
- Keyboard shortcuts
File Diff Viewer
Single file diffs:- Side-by-side (split) view
- Unified diff view
- Syntax highlighting
- Line numbers
- Expand/collapse hunks
- Status badges (new, deleted, modified, renamed)
- Respects app theme (light/dark/system)
- Syntax highlighting matches settings
- Configurable color schemes
Git Diff Modal
Full repository diffs:- Multiple file diffs in one view
- File tree navigation
- Expand/collapse files
- Search within diffs
- Export diff as patch
- Jump to file in editor
- Lazy-loaded (code splitting)
- Virtual scrolling for large diffs
- Syntax highlighting on-demand
- Debounced search
File Preview
In-chat file mentions:- Syntax highlighting (via Shiki)
- Line numbers
- Copy button
- Open in editor button
- Theme-aware
- JavaScript/TypeScript
- Rust
- Python
- Go
- HTML/CSS
- JSON/YAML
- Markdown
- And 100+ more via Shiki
Editor Integration
Supported editors:- Zed:
zed://file/path?line=42 - VS Code:
vscode://file/path:42 - Cursor:
cursor://file/path:42 - Xcode: Opens via
xedcommand
- File mention badges
- Diff viewer “Open” buttons
- File preview “Edit” buttons
- Right-click context menus
- Review findings (jump to file:line)
Inline Code Editor
CodeMirror 6 integration:- Syntax highlighting
- Line numbers
- Bracket matching
- Auto-indentation
- Vim keybindings (optional)
- Theme support
- Quick edits during review
- Small file changes
- JSON/config editing
- Viewing generated code
Syntax Highlighting
Shiki integration:- 100+ bundled languages
- 20+ bundled themes
- Accurate syntax parsing
- Tree-sitter based
- Supports code blocks in chat
File System Browser
Worktree file tree:- Hierarchical folder structure
- Expand/collapse folders
- File type icons
- Search/filter
- Quick open
- Right-click actions
- Preview file
- Open in editor
- Copy path
- Reveal in Finder/Explorer
- Show git status
- View file diff
How to Use
Using the Terminal
Open terminal:- Click terminal icon in bottom toolbar
- Or press Cmd/Ctrl + `
- Terminal panel slides up
- Drag resize handle
- Double-click handle to collapse
- Min/max sizes enforced
- Click ”+” in terminal tabs
- New terminal spawns
- Switch with tabs or Cmd/Ctrl + 1-9
- Click X on tab
- Or type
exitin shell - Terminal process killed immediately
Viewing File Diffs
From file mentions:- Hover over file mention in chat
- Click “View Diff” button
- Diff modal opens
- Click “Diff” button
- Choose diff type:
- Uncommitted changes
- Staged changes
- Branch diff
- Modal shows all changed files
- Click split/unified toggle
- Split: Side-by-side comparison
- Unified: Traditional patch view
Previewing Files
From chat:- Click file mention badge
- Preview modal opens
- View syntax-highlighted content
- Click “Open in Editor” to edit
- Click file in sidebar
- Preview loads inline
- Or double-click to open in editor
Opening in Editor
Configure default editor:- Settings (Cmd/Ctrl + ,)
- Interface section
- Editor dropdown
- Select preferred editor
- Cmd/Ctrl + click file mention
- Right-click → Open in Editor
- Keyboard shortcut on file tree item
- From review findings
- From error messages
- From search results
- Editor opens at specific line
Syntax Theme Customization
Change theme:- Settings → Interface
- Syntax Theme (Dark) or (Light)
- Choose from dropdown
- Preview updates immediately
- Separate themes for light and dark mode
- Automatically switches with app theme
- System theme detection supported
Configuration Options
Settings → Interface
Terminal:Settings → Keybindings
Terminal shortcuts:Best Practices
Terminal Usage
When to use integrated terminal:- Quick commands during chat
- Running tests
- Git operations
- Build scripts
- File operations
- Long-running processes
- Multiple panes needed
- Advanced shell features
- Terminal multiplexing (tmux, screen)
- Close unused terminals
- Clear scrollback buffer
- Avoid excessive output
- Use external terminal for heavy tasks
File Diff Workflows
Before committing:- Review uncommitted diff
- Check each changed file
- Verify no debug code
- Ensure tests pass
- Stage and commit
- Open branch diff
- Review each file systematically
- Note concerns in findings
- Request changes or approve
- Compare working vs broken commit
- Identify changed lines
- Narrow down regression
- Fix and verify
Editor Integration
Optimize workflow:- Set editor to primary development tool
- Use inline editing for quick tweaks only
- External editor for substantial changes
- Keep editor and Jean side-by-side
- Consistent project structure
- Editor workspace synced with worktree
- Use editor’s file tree for navigation
- Use Jean for AI assistance
Syntax Highlighting
Theme selection:- Match editor theme for consistency
- High contrast for readability
- Consider color blindness
- Test in both light and dark modes
Performance Optimization
Terminal:- Limit scrollback buffer
- Close inactive terminals
- Avoid cat-ing large files
- Use less/more for viewing
- Collapse unchanged sections
- Focus on specific files
- Use search to find relevant changes
- Export large diffs as patches
- Large files (> 1MB) may be slow
- Disable syntax highlighting if needed
- Use external editor for large files
- Clear preview cache periodically
Keyboard Shortcuts
Efficient navigation:Troubleshooting
Terminal not working:- Check shell path in settings
- Verify terminal app installed
- Review app logs for errors
- Try resetting terminal
- Ensure git repository initialized
- Check for uncommitted changes
- Verify working directory correct
- Refresh with Cmd/Ctrl + R
- Verify editor installed
- Check URL scheme registered
- Test with
open vscode://file/test.txt - Reinstall editor if needed
- Language not supported (check Shiki docs)
- Theme not loaded (try switching)
- File extension unrecognized
- Use plain text fallback