Geany - The Flyweight IDE, for fast development

Geany is a cross-platform, free and open-source lightweight GUI source code editor using Scintilla and GTK3 which includes basic IDE features. It have support for more than 50 programming languages. This IDE is the best choice when working with the most popular languages such as: C, C++, C#, Swift, Vala, Go, PHP, Javascript, HTML, CSS, Markdown, Python, Perl, Tcl/Tk, Java, Shell Scripting.

Category: software, open source, free, development, ide

Stable Version: Geany 1.38.0

Release Date:

Runs on: windows, mac, linux, openbsd, netbsd, freebsd, bsd

windows mac linux openbsd netbsd freebsd bsd

 Download Geany / Install Binaries: Links on the Official Website
Disclaimer: We do not store any binary or executable file formats on this website to provide direct file downloads. All download links of binaries or executables presented on this website, for any software application without exception, are provided only from the application's publisher Official Website and no other locations. This website is not responsible for the accuracy or safety of the software applications presented here. In particular this website section is just a catalog with popular opensource software applications mainly addressed to software developers to easy the access to the open source code.

  Get the Source Code of Geany / Software Source Code Download


  • Project Developer: Geany Development Team
  • License: GNU General Public License (GPL) v2
  • OpenSource, Free: Yes
  • Written in: C, C++
Building from Source: dependencies
  • Scintilla (included with the project), Vte3, GLib2, GObject2
  • Gtk+3, GDK3, GDK PifBuf2, Cairo, Cairo GObject, Pango, PangoCairo
  • PCRE, Expat, HarfBuzz, IConv, FontConfig, FreeType2, Fribidi, Graphite2
  • Pixman, Png, Jpeg, Epoxy, ExecInfo, Z
  • LLVM or GCC compiler


0 5 5
From a developer point of view - having a functional IDE is a must. Most of the IDEs are full of features but slow and this is when and why Geany comes up: to offer a lightweight alternative to the existing IDEs.
Geany IDE is a powerful, stable and lightweight source code and text editor IDE for programmers that provides tons of useful features without bogging down your workflow. It is designed to have short load times, with limited dependency on separate packages or external libraries. The first experiences with this IDE after a long time with other tools such Eclipse or NetBeans looks interesting at a first glance. Some features are missing, but there are other valuable features that can't be found in other IDEs - by example: matching brackets or quotes among different blocks of texts. By example, having a part of HTML code in a Javascript string and other part of HTML in other JS string ... well, it does the match of brackets or quotes among the different strings which not too many code editors can.
It also provides support for detecting and converting character sets. So you can open and save files in different character sets, and even convert a file from one character set to another. Only text files are supported, i.e. opening files which contain NULL-bytes may fail. This IDE will try to open the file anyway but it is likely that the file will be truncated because it can only be read up to the first occurrence of a NULL-byte. All characters after this position are lost and are not written when you save the file.
Another interesting feature of geany is that it can parse very fast large code files. While NetBeans or Eclipse will stale for a minute or so parsing such large code files, it does it on-the-fly, ... really fast which is an advantage in many situations where have to deal with large code projects. This is perhaps because Eclipse and NetBeans are written in Java (virtual-machine) while this software is written in C - very fast and light.
This IDE tries to detect the encoding of a file while opening it, but auto-detecting the encoding of a file is not easy and sometimes an encoding might not be detected correctly. In this case you have to set the encoding of the file manually in order to display it correctly. You can this in the file open dialog by selecting an encoding in the drop down box or by reloading the file with the file menu item "Reload as". The auto-detection works well for most encodings but there are also some encodings where it is known that auto-detection has problems.
Some other "best" features that this IDE offers are: better parsing of ES6 Javascript symbols in the IDE comparing with most of the IDEs, support for many languages - includding a very good support for GO, Rust and Vala programming languages.
There is a special encoding "None" which uses no encoding. It is useful when you know that it cannot auto-detect the encoding of a file and it is not displayed correctly. It detects the Unicode Byte Order Mark - the Byte Order Mark helps to detect the encoding of a file, e.g. whether it is UTF-16LE or UTF-16BE and so on.

Pros +
  • a very fast and lightweight IDE, written in C and C++, using the Scintilla editor component
  • it offers a very good and syntax highlighting and parsing for about to 50 different programming languages, have the best support for newer languages such as GO, Rust, Vala
  • it does parse Javascript, CSS, HTML, PHP much better than other editors (Ex: NetBeans)
  • it has a single and unique feature among other IDE editors to be able to match brackets in different string parts concatenated over the entire document
  • it detects meta tags directly from HTML files which contain charset information like:
    <meta http-equiv="content-type" content="text/html; charset=UTF-8">
  • allows each document to indent either with a tab character, multiple spaces or a combination of both
  • the Detect from file indentation preference can be used to scan each file as it's opened and set the indent type based on how many lines start with a tab vs. 2 or more spaces
  • when Auto-indentation is enabled (happens when pressing Enter in the editor) it adds a certain amount of indentation to the new line so the user doesn't always have to indent each line manually
  • code navigation history: to ease navigation in source files and especially between different files, the IDE lets you jump between different navigation points
  • context actions: you can execute the context action command on the current word at the cursor position or the available selection ; this word or selection can be used as an argument to the command ; the context action is invoked by a menu entry in the popup menu of the editor and also a keyboard shortcut
  • autocompletion: it does offer a list of possible completions for symbols defined in the tags and for all words in a document
  • word part completion: by default, pressing Tab will complete the selected item by word part
  • the search, replace and go to is very intuitive, easy top use, includes also a separate search bar
  • allows multi-line regular expressions
  • have a lot of configure options, edit and save settings, makes it easy to customize it for all developer preferences
  • in this IDE you technically search once for a whole search query, unlike Gedit or NetBeans, where once you start typing, the file is searched for in accordance with each substring of what you're typing, all the while leading to terribly annoying lag
  • the memory usage is very low ; it is very responsive including when working with very large code files
Cons -
  • the support for an integrated Project is limited ; there is a separate Project Organizer plugin (extension) that features a more advanced project management displaying a tree of files belonging to the project in the sidebar
  • it is not as advanced as some other text editors that can be extended to contain IDE functionality
  • does not have so many third-party plugins as other IDEs


Geany IDE is a lightweight, cross platform, GTK3 based IDE source code editor with quick text-editing facilities. Includes support for many popular programming languages (about to 50 different programming languages) and more. It is a cross platform and free alternative to other IDEs such as: NetBeans, Eclipse, CodeBlocks, IntelliJ Idea, XCode, Microsoft Visual Studio, WebStorm, PyCharm, Cloud9 IDE, Komodo Edit, RubyMine, Android Studio.


  • Real syntax highlighting and parsing (not just coloring) for approx. 50 programming languages
  • Supports at the best the most popular filetypes such as:
    • Assembler, C, C++
    • Objective-C, Swift, C# Vala
    • D, Rust, Go
    • PHP, Javascript, TypeScript
    • LateX, XML, HTML, CSS, Markdown
    • Python, Perl, Tcl/Tk
    • Java, Kotlin, Scala, Clojure
    • Haskell, Erlang, Pascal, Fortran, Basic
    • Shell Scripting, PowerShell, Batch Script, ActionScript
  • Code folding support (the ability to show and hide parts of the text in the current file)
  • Column mode editing
  • Drag and drop of text
  • Symbol name auto-completion
  • Construct completion/snippets
  • Auto-closing of XML and HTML tags
  • Symbol lists
  • Code navigation
  • Build system to compile and execute your code
  • Simple project management
  • Plugin interface
  • Call tips
  • Color schemes dialog
  • User-definable snippets: small strings or code constructs which can be replaced or completed to a more complex string
  • Easy inserting Unicode characters in the document
  • The workspace has the following parts:
    • The menu
    • An optional toolbar
    • An optional sidebar that can show the following tabs:
      • Documents - A document list
      • Symbols - A list of symbols in your code.
    • The main editor window
    • An optional message window which can show the following tabs:
      • Status - A list of status messages
      • Compiler - The output of compiling or building programs
      • Messages - Results of 'Find Usage', 'Find in Files' and other actions
      • Scribble - A text scratchpad for any use.
      • Terminal - An optional terminal window
    • A status bar
  • Additional tabs may be added to the sidebar and message window by plugins
  • The position of the tabs can be selected in the interface preferences
  • The sizes of the sidebar and message window can be adjusted by dragging the dividers
  • Provides a handy bookmarking feature that lets you mark one or more lines in a document
  • Includes a variety of command line options, ex: geany some_file.foo:55:4
  • When opening the IDE it detects if there is an instance of itself already running and opens files from the command-line in that instance
  • Includes a virtual terminal emulator widget (VTE)
  • It does supports fancy visual themes, including several modern dark themes

Screenshot: Main Screen
Geany IDE - Main Screen

Changelog Highlights

2021-10-09 : version 1.38.0

notable changes

  • Increase speed when opening documents, especially on startup
  • Synchronize Geany's Ctags implementation with Universal Ctags, this leads to updated symbol parsers
  • Remove GTK+2 Support ; Geany needs a C++17 compiler to build
  • BugFix: Workaround crashes when pasting into VTE without having focus
  • Interface: add keybinding to reload all open documents
  • Filetypes - add support for Julia and Meson
  • Switch Windows builds to GTK3 and x86_64
  • Updated translations
2020-11-08 : version 1.37.1

notable changes

  • Fix crash on first startup
2020-10-25 : version 1.37.0

notable changes

  • Build with GTK3 by default
  • Add an option (enabled by default) to save main and project configuration whenever documents are opened/closed to reduce accidental loss of current session in the event of a crash
  • List Geany in the category TextEditor
  • Fix main window name as seen by accessibility tools
  • Fix a possible crash when quitting
  • Interface: Allow to cancel Open Project and New Project dialogs without closing the current project
  • Don't ask whether to close current project when opening a recent project
  • Disable some items when they are not available
  • Provide a CSS name for most widgets
  • Adapt margins width to font size and zoom
  • Show OS info in debug messages
  • Persist color picker palette
  • Fix color of selected text in search entries with no match
  • Editor: Update Scintilla to version 3.21.1
  • Filetypes - add support for: BibTeX, Smalltalk
  • Update: JavaScript keywords, Lua block comment end, FreeBasic keywords
  • Add a configuration option to select the default Python command
  • Windows: Bundle the GLib GSpawn helper binaries with the installer for plugin that use the related GLib API
  • Updated translations
2019-09-28 : version 1.36.0

notable changes

  • Give precedence to user-defined filetype extension mappings over default ones
  • Give precedence to the longest matching filetype pattern
  • Place the socket file in $XDG_RUNTIME_DIR when available
  • Improve path ellipsising in Go To Tag filetype popup
  • Interface: Show group prefix for the Various preferences ; Show the GTK/GLib versions in about dialog
  • Editor: Update Scintilla to version 3.10.4
  • Add support for fractional font sizes
  • Filetypes - add support for Apple Swift, Nim, Kotlin, Groovy, TypeScript
  • Update: NSIS keywords, error matching for the CUDA filetype, Django keywords
  • Don't suggest to override all settings through Tools->Configuration Files
  • Windows: Migrate the installer to NSIS 3, Fix build on recent MSYS2
  • Updated translations