Versatile Editor for Light Text
A modern, minimal code editor built with Tauri, Svelte, and TypeScript.
- Multi-tab editing with visual indicator for unsaved changes
- Syntax highlighting for 13+ languages:
- JavaScript, TypeScript, HTML, CSS, JSON, Markdown
- Python, Rust, C/C++, Java, PHP, XML, SQL
- Automatic language detection based on file extension
- Native file dialogs for open/save operations
- Smart auto-save with configurable debounce delay
- Multi-encoding support (UTF-8, UTF-16LE, UTF-16BE with BOM detection)
- Find & Replace with regex and case-sensitive options
- Go to line navigation
- Bookmarks for quick navigation
- Line operations: duplicate, delete, move up/down
- Text transformations: uppercase, lowercase, title case, sort lines
- Markdown preview with live rendering, KaTeX math, Mermaid diagrams, and admonitions
- Split pane editing with drag-to-resize and independent tab management
- Customizable themes with hot-reload support and full markdown preview theming
- Cross-platform: Linux, macOS, Windows
- Backend: Rust with Tauri 2.x
- Frontend: Svelte 5 + TypeScript
- Editor: CodeMirror 6 (via @altagen/velt-core)
- Build: Vite
- Node.js (v18+)
- Rust
- Tauri prerequisites
# Clone the repository
git clone https://github.com/Altagen/Velt.git
cd Velt
# Install dependencies
npm installnpm run tauri:devnpm run tauri:buildBuilt packages will be available in src-tauri/target/release/bundle/.
| Shortcut | Action |
|---|---|
Ctrl+N |
New file |
Ctrl+Shift+N |
New window |
Ctrl+O |
Open file |
Ctrl+S |
Save |
Ctrl+Shift+S |
Save as |
Ctrl+Alt+S |
Save all |
Ctrl+W |
Close tab |
F5 |
Reload from disk |
| Shortcut | Action |
|---|---|
Ctrl+D |
Duplicate line |
Ctrl+Shift+K |
Delete line |
Alt+Up/Down |
Move line up/down |
Ctrl+/ |
Toggle comment |
| Shortcut | Action |
|---|---|
Ctrl+F |
Find |
Ctrl+H |
Find & Replace |
Ctrl+G |
Go to line |
F3 / Shift+F3 |
Find next/previous |
| Shortcut | Action |
|---|---|
Ctrl+M |
Toggle bookmark |
F2 / Shift+F2 |
Next/previous bookmark |
Ctrl+Shift+M |
Clear all bookmarks |
| Shortcut | Action |
|---|---|
Alt+U |
UPPERCASE |
Alt+L |
lowercase |
Alt+T |
Title Case |
Alt+I |
iNVERT cASE |
F9 / F10 |
Sort lines A-Z / Z-A |
Ctrl+Shift+D |
Remove duplicate lines |
Alt+W |
Trim trailing spaces |
Alt+B |
Remove blank lines |
| Shortcut | Action |
|---|---|
Ctrl++ / Ctrl+- |
Zoom in/out |
Ctrl+0 |
Reset zoom |
F11 |
Convert to LF |
F12 |
Convert to CRLF |
velt/
├── src/ # Frontend (Svelte)
│ ├── components/ # UI components
│ ├── stores/ # Svelte stores
│ ├── lib/ # Utilities
│ └── types/ # TypeScript types
├── src-tauri/ # Backend (Rust)
│ ├── src/
│ │ ├── main.rs # CLI entry point
│ │ ├── lib.rs # Tauri commands
│ │ └── config.rs # Configuration management
│ └── tauri.conf.json # Tauri configuration
└── package.json
Velt stores its configuration in:
- Linux:
~/.config/velt/ - macOS:
~/Library/Application Support/velt/ - Windows:
%APPDATA%\velt\
Configuration includes:
config.json- Application settingscurrent.json- Current themethemes/- Custom themes directoryfonts/- Imported fonts
Velt binaries are self-contained and work out of the box. All environment variables are optional.
| Variable | Description | Default |
|---|---|---|
VELT_CONFIG_HOME |
Custom configuration directory | Platform default (see above) |
GDK_BACKEND |
Graphics backend (Linux only) | x11 on Wayland, native otherwise |
Custom config directory (portable installation):
# Linux/macOS
VELT_CONFIG_HOME=~/my-velt-config velt
# Or export for the session
export VELT_CONFIG_HOME=~/my-velt-config
veltForce native Wayland (Linux):
# By default, Velt uses X11 on Wayland for better WebKit compatibility
# To use native Wayland (experimental):
GDK_BACKEND=wayland veltPersistent environment variable (Linux):
# Add to ~/.bashrc or ~/.zshrc
export VELT_CONFIG_HOME="$HOME/.config/velt-custom"- On Wayland, Velt defaults to X11 backend (
GDK_BACKEND=x11) for better compatibility with WebKit2GTK. You can override this if native Wayland works on your system. - The
VELT_CONFIG_HOMEvariable is useful for portable installations or testing with different configurations. - All settings configured via the UI are saved in the config directory and do not require environment variables.
- Architecture - How Velt is structured
- Theme System - Theme customization reference
- Markdown - Markdown preview features and syntax
- Font System - Font configuration and import
- Security - Security model and practices
MIT License - see LICENSE for details.
Contributions are welcome! Please open an issue or submit a pull request on GitHub.


