Skip to content

Releases: zahid4kh/QODE

1.2.1

Choose a tag to compare

@github-actions github-actions released this 19 Oct 10:23

What's new in QODE 1.2.1

Markdown preview

The live preview (Ctrl+Shift+V) got a round of polish.

  • Easier to read: better typography, spacing and contrast for headings, lists, quotes and tables.
  • Scroll sync: the preview follows the editor as you scroll and move the caret.
  • Footnotes and task lists (- [ ] / - [x]) are rendered.
  • Coloured code blocks: fenced code is highlighted with your current theme.
  • The preview still never scrolls horizontally: code wraps and images scale to fit.

Build and release

  • A GitHub Actions workflow now compiles QODE and builds both Debian packages (system Qt and bundled Qt) on every push, and attaches them to a release when a version tag is pushed.
  • Build scripts live in scripts/ (compile.sh, build-deb.sh, build-deb-qt.sh) and work from any directory.

Full Changelog: 1.2.0...1.2.1

1.2.0

Choose a tag to compare

@zahid4kh zahid4kh released this 16 Oct 20:25

What's new in QODE 1.2.0

Spring Boot support

QODE now recognises Spring Boot projects (Gradle or Maven) and adds a dedicated toolbar strip and panel. Nothing shows up in other projects.

  • Toolbar strip with a status dot, a localhost:port link, start/stop and restart. F5 starts or restarts the server.
  • Status goes through Building, Starting and Running, with the startup time shown. "Port already in use" and build failures are reported clearly.
  • Run options: profiles (detected from application-<profile>.* files), port, program arguments, JVM arguments, environment variables, or a complete custom command.
  • Live log view with level colours, filtering by level or text, pause, and a hide-build-output toggle.
  • Stack traces fold: framework frames hide behind a click, while project frames and compiler errors are links that open the file at the right line.

HTTP client

  • New Requests tab in the Spring panel: pick a method and URL, set headers and a body, and see a formatted response.
  • Endpoints are discovered from your @RestController / @Controller classes (Kotlin and Java), with a JSON body skeleton for @RequestBody types.
  • URLs starting with / use the running server's port.
  • History and saved requests are kept per project.

Actuator

  • Actuator tab (when Actuator is a dependency): health tree, beans, mappings, environment, info and metrics.
  • Honours management.server.port and base-path. If endpoints are not exposed, one click adds the setting.

Scaffolding and project setup

  • New Kotlin Spring Boot backend project template (File > New Project): Spring MVC REST starter, Gradle Kotlin DSL with a version catalog, MockMvc tests.
  • Add Spring Starters… (View menu): pick starters and QODE edits build.gradle(.kts) or pom.xml for you.
  • New Spring Component in the explorer context menu: Controller, Service, Entity, Repository, Configuration, ExceptionHandler, written in the folder's package in Kotlin or Java.
  • CRUD Set…: entity with typed fields, repository, service and a full controller in one step.
  • Completion for application*.properties and application*.yml keys and values.

Whole-UI zoom

  • Zoom the entire interface, not just the editor font: Ctrl+= / Ctrl+- / Ctrl+0, Ctrl+wheel, or the new zoom popup in the status bar.
  • Fonts, icons, spacing and sizes all scale; the editor and terminal follow.
  • The zoom level is saved per project.

Fixes

  • Agent: /compact no longer sends an empty request.

Full Changelog: 1.1.0...1.2.0

1.1.0

Choose a tag to compare

@zahid4kh zahid4kh released this 15 Oct 11:27

What's new in QODE 1.1.0

Agent tab

  • New Agent tab in the AI panel: an autonomous Gemini agent that explores, edits and runs your project through function calling.
  • Live view of each turn: thoughts, text, tool calls and edit diffs as they stream in.
  • Edits land as normal unsaved, undoable changes in editor tabs.
  • All file access is confined to the project folder. Secrets (.env, keys) and .git are refused.
  • Tools: list, tree, find files, search text, read, edit range, replace text, insert lines, create, move, copy, delete, run command, open files, diagnostics.

Git tools

  • git_status, git_diff, git_log, git_add, git_unstage, git_commit, git_switch, git_stash.
  • Every git tool asks first: Allow once, Allow for this chat (per tool) or Deny.
  • No push, reset, discard or amend. The Version Control panel refreshes after changes.

Undo and redo

  • Every change the agent makes is journaled per chat and survives restarts.
  • Undo or redo from the buttons under each turn, the history menu, or /undo [all] and /redo.
  • Files you edited after the agent are left alone unless forced.
  • Can undo just the hunks touching a line range.

Slash commands

  • /init: writes an AGENTS.md for the project, which the agent then reads on every run.
  • /compact: summarizes the chat to free up context.
  • A popup lists commands as you type /.

Smarter and cheaper runs

  • Agent reads LSP diagnostics to check its own work.
  • Stable prompts and verbatim history make better use of Gemini's implicit caching.
  • Token usage, including cached tokens, is shown under each turn.
  • Automatic retry on rate limits (429) and overload (503).
  • Stop cancels the run and kills any running command.

Full Changelog: 1.0.0...1.1.0

1.0.0

Choose a tag to compare

@zahid4kh zahid4kh released this 14 Oct 07:46

qode-bundled_* is the package that ships with its own bundled Qt libraries. The plain qode_* package uses the system Qt.

AI code editing (new)

  • AI chat panel for editing code with Gemini. Open it with Ctrl+Alt+G. The panel slides in and out.
  • Each request runs as plan, edit, then summary.
  • Changes appear as cards with a check or x icon. Each card expands to a line diff that you can scroll.
  • Diffs are red/green in all themes, including the greyscale ones.
  • Use @file in a message to attach project files.
  • A model picker is built into the panel.
  • Ctrl+Enter sends and Enter inserts a newline. Sending is disabled while the model is working, and the Send button turns into Stop.
  • You supply your own Gemini API key through a dialog in the app. The key is saved to ~/.config/QODE/gemini.key, readable only by you, and is never bundled with QODE.
  • .env files and credential files are never sent to the model.

Language server

  • Signature help (Ctrl+Shift+Space opens it, Ctrl+P shows parameter info).
  • Inlay hints for types and parameters, including Kotlin. Toggle them under View > Inlay Hints.
  • Semantic highlighting.
  • Folding ranges and document symbols from the language server.
  • Highlighting of the symbol under the caret.
  • A light bulb in the gutter for quick fixes.
  • Source actions: Organize Imports, Remove Unused Imports, Add Missing Imports and Fix All. Fix All and Organize Imports can also run on save.
  • Go to Type Definition (Ctrl+Shift+F12) and Go to Implementation (Ctrl+Alt+F12).
  • Go to Symbol in Workspace (Ctrl+Alt+R).
  • Call hierarchy (Ctrl+Alt+H).
  • Quick Definition.
  • Completion now fills in parentheses for functions, with the caret inside them. Named arguments (the parameters of the call being typed) rank first among equal matches.

Editor

  • CSV and TSV files get column-coloured highlighting.
  • CSV and TSV files can be edited in a table view. A Text/Table switch toggles between the two. Edits in the table go straight to the document, so undo, save and the text view stay in sync.

Performance and fixes

  • Fixed typing lag with Kotlin and Compose projects:
    • Language-server lookups are cached.
    • Typing-triggered requests go out first.
    • Pending edits are flushed before a completion request.
    • Throttled progress updates and diagnostic refreshes keep indexing from lagging the UI.
  • Fixed a crash on quit.

Full Changelog: 0.9.0...1.0.0

0.9.0

Choose a tag to compare

@zahid4kh zahid4kh released this 10 Oct 13:34

Full Changelog: 0.8.0...0.9.0

What's New in 0.9.0

  • Gradle tasks panel: Gradle projects (pure Kotlin, Java or Compose Desktop) get a Gradle button next to Run. It opens a panel on the right listing every task, grouped by category (build, signing, and so on), with a filter box and a toggle for showing all tasks. Double-click a task or press Enter to run it in the terminal. The right-click menu has Run, Run with Arguments, Copy Command and Copy Task Name.
  • Go to Definition on library classes: it now opens the readable Kotlin or Java source from the library's sources jar instead of the compiled .class. This works for Maven and Gradle dependencies, and when the sources jar is missing QODE offers to download it through Gradle.
  • Kotlin language server: updated to build 263.6379.0, because the previous build had expired. If a server build expires again, QODE now says so clearly and points to Update / Reinstall, instead of just showing "Stopped".
  • Compose Desktop template:
    • Main.kt now uses @file:JvmName set from the app name, so the dock shows the app's icon and name instead of a long main class.
    • New buildUberDeb task builds a .deb that contains only the JAR and a launcher script, and needs Java installed.
    • New packageDebWithWMClass task builds the .deb and then fixes the app name, window class, maintainer and install scripts in it.

0.8.0

Choose a tag to compare

@zahid4kh zahid4kh released this 09 Oct 22:49

Full Changelog: 0.7.0...0.8.0

Editor

  • Duplicate Line with Ctrl+D, no selection needed. The line is copied below and the caret moves onto the copy. With a selection, the selected text is duplicated instead. It is also in the right-click menu.
  • Auto save is on by default. The delay is configurable from 100 to 2000 ms (default 200) under File > Save Options > Auto Save > Auto Save Delay…

C/C++ and running code

  • LSP > Include Paths… lets you add per-project include directories for clangd. It works even when the project has a compile_commands.json.
  • The Run Configuration dialog has a Preset dropdown with ready-made commands for the file type, and you can still type your own command.

Interface and branding

  • The Version Control toolbar icon follows the theme. It was nearly invisible on dark themes before.
  • Status bar messages (LSP and others) no longer draw over the project path and git indicator

0.7.0

Choose a tag to compare

@zahid4kh zahid4kh released this 08 Oct 19:29

Full Changelog: 0.6.0...0.7.0

Expo / React Native

  • QODE detects Expo projects: any folder whose package.json depends on expo. It finds apps inside monorepos (for example apps/mobile) up to three levels deep. Projects that aren't Expo get none of the React Native UI.
  • A new toolbar control replaces Run File and Run Configuration in Expo projects. Its split Run button repeats the last configuration, and its menu has:
    • Run on Android: npx expo run:android
    • Run on iOS: npx expo run:ios (disabled outside macOS)
    • Start Metro / Expo Go: npx expo start
    • Prebuild Android and Prebuild iOS: npx expo prebuild --platform …
  • Open React Native DevTools, once Metro was started from the toolbar.
  • In a monorepo you can pick which app to run, and the choice is remembered per project.
  • Expo apps no longer show up as web dev servers.
  • An app.json button opens an editor dialog. It has a General page, one page per section (objects and arrays), and nested blocks. You can add, rename, change the type of and remove keys, and create new sections. Tooltips, key-name completion and enum choices come from the Expo schema. Saving changes only what you edited and keeps key order and indentation.
  • The Expo schema for the project's SDK is downloaded from Expo and cached in ~/.cache/QODE/expo. It refreshes after 30 days and falls back to the cached copy offline. The JSON language server uses it for app.json completion and validation.
  • Expo Schema Cache… shows the cache folder, its size and the rm -rf command, and can delete it.

Python

  • basedpyright (type checking, completion, hover) and Ruff (linting and formatting) are available from the LSP menu. They install into one private virtual environment, using uv if present, otherwise python3 -m venv and pip. A matching remove dialog is included.
  • The language server resolves imports against the project's virtual environment.
  • A Python Packages dialog lets you:
    • install, upgrade and uninstall packages
    • install from requirements.txt or pyproject.toml
    • pick between several virtual environments
    • create a .venv
  • It sits on the toolbar next to Run and appears only when the project has a virtual environment. It is also under View > Python Packages….
  • Alt+Enter on an unresolved import offers to install the missing package.

Themes

  • New built-in themes: Monochrome Dark and Monochrome Light. The UI is greyscale, with the light one in silver rather than white. Syntax and terminal colours are kept. Both can be customized in the theme editor.

Markdown

  • Fenced code, tables, setext headings, reference links, HTML and escapes are now highlighted.
  • Markdown editors always wrap lines.
  • The preview uses its own Markdown renderer with rounded code boxes (language label and Copy button), inline code styling, wrapping, image fitting, and links that open project files in a new tab.

Explorer

  • Paste files and images into the tree.
  • Copy file path, relative path or name.
  • Drop files from outside QODE into the tree.
  • F2 renames and Delete removes the selected files.
  • Context menus are rounded and bordered in every theme.
  • The editor context menu uses QODE icons, and the explorer notice bar has an × icon.

Terminal

  • Ctrl+V with an image on the clipboard works in programs such as Claude Code. Copied files paste as paths, and middle-click paste behaves the same way.

Version Control

  • The commit box keeps its size when the panel is resized, and "Source Control" is now "Version Control".

0.6.0

Choose a tag to compare

@zahid4kh zahid4kh released this 06 Oct 14:29

Full Changelog: 0.5.0...0.6.0

QODE 0.6.0

Project templates (File > New Project)

  • The new dialog has a template list, per-template options and a bordered window.
  • Kotlin Console and Compose Desktop (Gradle wrapper, version catalog, app icon).
  • C and C++ Console, with plain scripts or CMake. Both include a test stub, .clang-format and compile_flags.txt for clangd.
  • Qt 6 Widgets, with qmake or CMake.
  • Optional ccache and mold speed-ups, each explained in the dialog.
  • Warnings when a needed tool (JDK, Qt 6, cmake, ccache or mold) is missing.
  • A template can set the project's run command.

Java and Kotlin

  • Java language server (Eclipse JDT LS) with a downloader.
  • Run configurations for Gradle and Maven projects. QODE detects the main class and the framework (Compose Desktop, Spring Boot and others).
  • Gradle and Maven files sync automatically when saved, and there is a manual LSP > Sync Build Files.
  • libs.* completion from gradle/libs.versions.toml in build scripts.
  • Kotlin hover now falls back to the library's KDoc and signature when the server returns nothing, for example on Button, Switch and Card.

Theming

  • Themes are JSON files in the config folder, with a live-preview Theme Editor and a built-in Darcula theme.

Explorer

  • Drag-and-drop moves with a drop highlight and undo.
  • Imports, includes and links are updated across many languages.

Run configuration

  • The run command now applies project-wide.
  • Detected Gradle and qmake projects run regardless of which file is open.

0.5.0

Choose a tag to compare

@zahid4kh zahid4kh released this 04 Oct 19:00

Full Changelog: 0.2.0...0.5.0

Everything in 0.4.0 and 0.5.0 ships together in this release, since 0.4.0 was never released as a .deb.

  • Web development
    • CSS colour swatches next to colour values. Click one to open a colour picker. It keeps notation: hex, rgb() or hsl().
    • Emmet abbreviations expand with Tab in HTML, JSX and TSX.
    • ESLint diagnostics and quick fixes now work in projects that have ESLint configured.
    • Tailwind CSS completion, hover and colours work if you install the Tailwind language server yourself.
    • Format Document now works for HTML, CSS and JSON through their language servers.
    • Indentation follows the file: it detects tabs or the file's own step size instead of using your settings.
  • Navigation
    • Rename Symbol (F2) and Find References (Shift+F12).
    • Bookmarks moved to Shift+F2 (next), Ctrl+Shift+F2 (previous) and Ctrl+F2 (toggle).
  • LSP
    • The server log is now a bigger, resizable, themed dialog. You can select and copy text, filter lines, refresh, and errors and warnings are coloured.
  • Terminal and UI
    • The terminal scrolls properly, including full-screen apps.
    • Terminal tabs are rounded and follow your theme. The "terminal" to "bash" name flash is gone, and the + button is on the right.
    • The welcome page scrolls instead of squashing or overlapping text when the window is short.

0.2.0

Choose a tag to compare

@zahid4kh zahid4kh released this 02 Oct 21:51

Full Changelog: 0.1.0...0.2.0

QODE 0.2.0

Web development

  • Language servers for the web. HTML, CSS/SCSS/Less, JavaScript, TypeScript (including JSX/TSX) and JSON now get diagnostics, hover, go to definition and completion. Install them in one step from the LSP menu. QODE downloads them into its own folder and doesn't touch your project. Requires Node.js on your system.
  • Dev server in the toolbar. Opening a JavaScript or TypeScript project shows a server strip with a status dot, the port, start/stop, restart, log and settings buttons. The dot is amber while starting and green once running. The port comes from the server's own output, so it's correct even when Vite picks a different one.
  • Right command for your project. QODE detects the package manager from the lockfile (bun dev, pnpm dev, yarn dev or npm run dev) and the framework (Next.js, Vite, Nuxt, SvelteKit, Astro, Remix, Angular and others). In a web project, F5 starts or restarts the server instead of running a file.
  • Manual port. Set a port in the server settings. QODE passes it using the framework's own flag.
  • Hardcoded ports are respected. If a script already pins its port (next dev -p 4000, PORT=3000 …), QODE leaves it alone and runs that port.
  • Nested projects. If the web project lives in a subfolder such as docs/, QODE asks whether to run the server there. You can answer "Not Now" or "Don't Ask Again", and the choice is remembered per project.
  • .env editor. The key button in the server strip edits .env, .env.local and other .env* files as a name/value table, or opens the file in the editor. Saving only changes the lines you edited. Comments, blank lines and the rest of the file stay as they were. It can restart the running server for you.

File explorer

  • New sort order: folders, then dot folders, then dot files, then regular files, each alphabetical with natural number ordering (file2 before file10).
  • Show or hide dot files: View -> Show Hidden Files in Explorer. Anything starting with .env always stays visible. The setting is remembered.