A personal code editor project, rebuilt with a modern workbench and plugin-first architecture.
Modern UI, native tooling, plugin-first architecture, and developer features that stay practical.
Ember is a modern code editor built as a personal project. It is designed as a general-purpose editor with a focused workbench, strong extension points, and practical developer tooling.
Today, Ember is a general-purpose editor focused on:
- a clean, modern workbench;
- a custom code editor with syntax highlighting, diagnostics, suggestions and navigation;
- Rust-powered tooling where performance matters;
- plugins as the default way to extend or replace features;
- local-first workflows, with AI integration planned around the editor rather than bolted on top.
It is still evolving quickly. The current direction is pragmatic: keep what works, remove what is legacy, and rebuild the core around a flexible architecture.
- Custom editor UI — token-based rendering, diagnostics, hover details, quick fixes, minimap indicators, folding and navigation.
- LSP integration — language providers are plugin-friendly, with Python/Rust support being actively wired through external LSP processes.
- Rust acceleration — Ferrite powers syntax/token work and native editor services are being expanded progressively.
- Plugin system — themes, icons, fonts, panels, shortcuts, search providers, formatters and diagnostics can be contributed by plugins.
- Themeable workbench — appearance providers can control colors, editor tokens, file icons and fonts through explicit contracts.
- Integrated terminal — PTY-based terminal with themed rendering and workbench dock integration.
- Project sessions — project switching, editor tabs, recents and workspace-scoped state.
- Ryx data layer — project/session/settings storage is moving through Ryx, a Rust/sqlx-powered async ORM.
Ember is being rebuilt around clear layers:
QML Workbench
└─ ViewModels (PySide6 QObjects)
└─ Async Services
├─ Ryx data models
├─ LSP / diagnostics / search / terminal services
├─ Plugin manager and contribution registry
└─ Ferrite native Rust module
The old codebase is intentionally not treated as sacred. Ember keeps the lessons from the previous experiment, but the implementation is being modernized feature by feature.
Ember already ships with internal/proprietary-style plugins that define core behavior:
emberDefaultTheme— default workbench theme and editor token colors.emberLightTheme/emberOneDarkTheme— alternative appearance providers.emberFileIcons— file and folder icon provider.emberFontPack— editor/UI font provider.emberDefaultKeybindings— default keyboard shortcuts.emberInlineDiagnostics— inline diagnostic messages in the editor.emberSearchRipgrep— fast search provider.emberPythonLsp/emberRustLsp— language server providers.
The long-term rule is simple: most application features should be open to plugins, while the core backend remains stable and safe.
Ember is in active development. Local dependencies such as Ryx, Batya and Falcorn may be used from sibling folders during development.
- Python
3.13+ uv- Rust toolchain
- Qt/PySide6 runtime dependencies
uv sync
uv run maturin develop --release
uv run python studio.pyIf you already have the virtual environment ready:
python studio.pyuv run ruff check .
uv run ruff format .
uv run pytest- Finish editor polish: selection, folding, suggestions, quick fixes, references and definitions.
- Finalize plugin contracts for panels, actions, LSP providers, themes, icons, fonts and file operations.
- Complete settings coverage for editor, AI, LSP, terminal, plugins and appearance.
- Add AI features: inline suggestions, contextual chat, code actions and project-aware workflows.
- Improve packaging, docs and contributor onboarding.
This is still a personal project, but feedback, experiments and contributions are welcome.
- Discord: Join us Ember community
- Issues and ideas: use the GitHub repository discussions/issues when available.
Ember exists because KivymdStudio existed first. The original project was a small homemade editor built quickly in 2019. It had rough edges, but it also had enough personality to be worth reviving.
The new direction is not “KivyMD Studio v2”. It is Ember: a modern, extensible code editor that keeps the spirit of the original project while moving beyond its old scope.
