Top 23 syntax-highlighting Open-Source Projects

  • rich

    Rich is a Python library for rich text and beautiful formatting in the terminal.

    Project mention: Ask HN: Programmers and Technologists in Scotland | | 2023-10-09

    I hope he doesn't mind, but the creator of Rich and Textualize is a good guy, and Scottish:

  • bat

    A cat(1) clone with wings.

    Project mention: MacOS tools to make your life easier | /r/MacOS | 2023-12-07

    Try bat (it’s like cat but better)

  • InfluxDB

    Collect and Analyze Billions of Data Points in Real Time. Manage all types of time series data in a single, purpose-built database. Run at any scale in any environment in the cloud, on-premises, or at the edge.

  • Highlight.js

    JavaScript syntax highlighter with language auto-detection and zero dependencies.

    Project mention: Show HN: A template for Markdown-based sites (no static site generator required) | | 2023-12-03

    The templates grabs Markdown file data with XMLHttpRequest and converts it to HTML with . Classless styles are done with and code block syntax highlighting is done with .

    GitHub repo:

  • DevToys

    A Swiss Army knife for developers.

    Project mention: Set Up MacOS for Development Productivity | | 2023-08-27
  • zsh-syntax-highlighting

    Fish shell like syntax highlighting for Zsh.

    Project mention: Quickest path to a decent zsh setup? | /r/zsh | 2023-12-05

    # run this git clone $ZSH/custom/zsh-syntax-highlighting # add this to your .zshrc plugin=(... zsh-syntax-highlighting)

  • linguist

    Language Savant. If your repository's language is being reported incorrectly, send us a pull request!

    Project mention: TIL: Github seems to recognize ebuilds as a format. Is this a new github feature? Or has this been here since forever? | /r/Gentoo | 2023-06-15

    GitHub uses Linguist to

  • mycli

    A Terminal Client for MySQL with AutoCompletion and Syntax Highlighting.

    Project mention: Does anyone prefer the CLI over the shell, or other way around? If so, why? | /r/mysql | 2023-04-23

    Also, check out MyCLI. "Terminal Client for MySQL with AutoCompletion and Syntax Highlighting"

  • Onboard AI

    Learn any GitHub repo in 59 seconds. Onboard AI learns any GitHub repo in minutes and lets you chat with it to locate functionality, understand different parts, and generate new code. Use it for free at

  • gdb-dashboard

    Modular visual interface for GDB in Python

    Project mention: Everything You Never Wanted to Know About CMake (Redux) | | 2023-06-25

    Disclaimer: I'm making a competing build system.

    I won't tell you specific build systems, but I will tell you what to look for.

    Look for power. Unlimited power. [1]

    Usually, this means a few things:

    1. The build system uses a general-purpose language, even if the language needs features to be added.

    2. The build system does not reduce the power of the general-purpose language. For example, say it starts with Python but prohibits recursion. In that case, you know it is not unlimited power. Looking at you, Starlark.

    3. The build can be dynamically changed, i.e., the build is not statically determined before it even begins.

    4. Each task has unlimited power. This means that the task can use a general-purpose language, not just run external processes.

    5. And there has to be some thought put it in user experience.

    Why are these important? Well, let's look at why with CMake, which fails all of them.

    For #1, CMake's language started as a limited language for enumerating lists. (Hence, CMakeLists.txt is the file name.) And yet, it's grown to be as general-purpose as possible. Why? Because when you need an if statement, nothing else will do, and when you need a loop, nothing else will do.

    And that brings us to #2: if CMake's language started limited, are there still places where it's limited? I argue yes, and I point to the article where it says that your couldn't dynamically call functions until recently. There are probably other places.

    For #3, CMake's whole model precludes it. CMake generates the build upfront then expects another build system to actually execute it. There is no changing the build without regenerating it. (And even then, CMake did a poor job until the addition of `--fresh`.) A fully dynamic build should be able to add targets and make others targets depend on those new targets dynamically, among other things.

    For #4, obviously CMake limits what tasks can do because Ninja and Make limit tasks to running commands.

    As another example, to implement a LaTeX target, you technically need a while loop to iterate until a fixed point. To do that with Make and Ninja, you have to jump through hoops or use an external script that may not work on all platforms.

    CMake obviously fails #5, and to see how much other build systems fail it, just look for comments pouring hate on those build systems. CMake fails the most, but I haven't seen one that passes yet.

    As an example, CMake barely got a debugger. Wow! Cool! It's been 20 years! My build system will have a debugger in public release #2 (one after the MVP) that will be capable of outputting to multiple TTY's like gdb-dashboard. [2] They should have had this years ago!

    Should other comments suggest specific build systems, like the one that suggested Bazel, judge them by this list. Some will be better than others. None will pass everything, IMO, which is why I'm making my own.



  • jupyter-themes

    Custom Jupyter Notebook Themes

    Project mention: Jupyter Notebook | /r/learnpython | 2023-04-03
  • HTTP Prompt

    An interactive command-line HTTP and API testing client built on top of HTTPie featuring autocomplete, syntax highlighting, and more.

  • nord

    An arctic, north-bluish color palette.

    Project mention: What is this color theme ? | /r/vim | 2023-05-13
  • remarkable

    Markdown parser, done right. Commonmark support, extensions, syntax plugins, high speed - all in one. Gulp and metalsmith plugins available. Used by Facebook, Docusaurus and many others! Use for HTML-to-markdown conversion. Use to generate a table of contents.

  • vim-markdown

    Markdown Vim Mode

    Project mention: Treesitter is amazing: syntax highlight code examples, inside docstring, inside markdown | /r/neovim | 2023-03-23

    I think vim-markdown does it too

  • Notepad3

    Notepad like text editor based on the Scintilla source code. Notepad3 based on code from Notepad2 and MiniPath on code from metapath. Download Notepad3:

    Project mention: Name some underrated open source apps | /r/PrivacyGuides | 2023-01-07
  • codehike

    Marvellous code walkthroughs

    Project mention: GitHub Accelerator: our first cohort and what's next | | 2023-04-13

    - Tools for building all types of code walkthroughs: blogs, docs, slides, tutorials, etc.

  • NoteHighlight2016

    Source code syntax highlighting for OneNote 2016 and OneNote for O365 . NoteHighlight 2013 port for OneNote 2016 (32-bit and 64-bit)

  • tailspin

    🌀 A log file highlighter

    Project mention: FLaNK Stack Weekly 06 Nov 2023 | | 2023-11-06
  • Rouge

    A pure Ruby code highlighter that is compatible with Pygments

    Project mention: Simple Article Improvements | | 2023-08-21

    To see if a particular language is supported you can use Rouge's handle tool rougify. First install a ruby interpreter. Then checkout the rouge source code and run bin/rougify list in the source code root directory:

  • rich-cli

    Rich-cli is a command line toolbox for fancy output in the terminal

    Project mention: Ask HN: Programmers and Technologists in Scotland | | 2023-10-09

    I hope he doesn't mind, but the creator of Rich and Textualize is a good guy, and Scottish:

  • diff2html

    Pretty diff to html javascript library (diff2html)

    Project mention: Unified versus Split Diff | | 2023-10-24
  • ZeroBraneStudio

    Lightweight Lua-based IDE for Lua with code completion, syntax highlighting, live coding, remote debugger, and code analyzer; supports Lua 5.1, 5.2, 5.3, 5.4, LuaJIT and other Lua interpreters on Windows, macOS, and Linux

  • git-split-diffs

    GitHub style split diffs in your terminal

  • vim

    An arctic, north-bluish clean and elegant Vim theme. (by nordtheme)

    Project mention: What color scheme do you use? | /r/neovim | 2023-06-16


  • SaaSHub

    SaaSHub - Software Alternatives and Reviews. SaaSHub helps you find the best software and product alternatives

NOTE: The open source projects on this list are ordered by number of github stars. The number of mentions indicates repo mentiontions in the last 12 Months or since we started tracking (Dec 2020). The latest post mention was on 2023-12-07.

syntax-highlighting related posts


What are some of the best open-source syntax-highlighting projects? This list will help you:

Project Stars
1 rich 45,720
2 bat 44,119
3 Highlight.js 22,470
4 DevToys 19,095
5 zsh-syntax-highlighting 18,182
6 linguist 11,424
7 mycli 11,104
8 gdb-dashboard 9,871
9 jupyter-themes 9,679
10 HTTP Prompt 8,824
11 nord 5,834
12 remarkable 5,600
13 vim-markdown 4,529
14 Notepad3 4,358
15 codehike 4,044
16 NoteHighlight2016 3,666
17 tailspin 3,558
18 Rouge 3,253
19 rich-cli 2,844
20 diff2html 2,585
21 ZeroBraneStudio 2,529
22 git-split-diffs 2,495
23 vim 2,450
SaaSHub - Software Alternatives and Reviews
SaaSHub helps you find the best software and product alternatives