Skip to content
Oeiuwq Faith Blog OpenSource Porfolio

leandrocp/lumis

Syntax Highlighter powered by Tree-sitter and Neovim themes.

leandrocp/lumis.json
{
"createdAt": "2025-02-14T19:40:42Z",
"defaultBranch": "main",
"description": "Syntax Highlighter powered by Tree-sitter and Neovim themes.",
"fullName": "leandrocp/lumis",
"homepage": "https://lumis.sh",
"language": "C",
"name": "lumis",
"pushedAt": "2026-03-19T03:34:52Z",
"stargazersCount": 77,
"topics": [
"cli",
"elixir",
"java",
"rust",
"syntax-highlighter",
"syntax-highlighting",
"tree-sitter",
"tree-sitter-highlight"
],
"updatedAt": "2026-03-17T05:07:36Z",
"url": "https://github.com/leandrocp/lumis"
}

Lumis

Syntax Highlighter powered by Tree-sitter and Neovim themes

70+ languages. 120+ themes. 4 platforms. One API.

lumis.sh

Crates.io Hex.pm License


  • 70+ Tree-sitter languages - Fast and accurate syntax parsing
  • 120+ Neovim themes - Updated and curated themes from the Neovim community
  • 4 platforms - CLI, Rust, Elixir, Java
  • Multiple outputs - HTML (inline/linked), Terminal (ANSI), multi-theme (light/dark), and custom formatters
  • Language auto-detection - File extension and shebang support
  • Streaming-friendly - Handles incomplete code gracefully
  • Zero config - Works out of the box
Ruby with Catppuccin Frappe theme SQL with GitHub Light theme
Terminal window
cargo install lumis
lumis highlight src/index.js --theme dracula
use lumis::{highlight, HtmlInlineBuilder, languages::Language, themes};
let code = "print('Hello')";
let theme = themes::get("dracula").unwrap();
let formatter = HtmlInlineBuilder::new()
.lang(Language::Python)
.theme(Some(theme))
.build()
.unwrap();
let html = highlight(code, formatter);
Lumis.highlight!("setTimeout(fun, 5000)", language: "js", formatter: {:html_inline, theme: "dracula"})

Project by @andreaTP. More details at https://chicory.dev/blog/syntax-highlight

import io.roastedroot.lumis4j.core.Lumis;
import io.roastedroot.lumis4j.core.Lang;
import io.roastedroot.lumis4j.core.Theme;
var lumis = Lumis.builder()
.withLang(Lang.JAVASCRIPT)
.withTheme(Theme.DRACULA)
.build();
var result = lumis.highlight("console.log('Hello, World!');");
System.out.println(result.string());
PlatformInstallPackageDocs
CLIcargo install lumis-lumis --help
Rustcargo add lumiscrates.io/lumis[README.md]!(crates/lumis/README.md) • docs.rs
Elixir{:lumis, "~> 0.1"}hex.pm/lumis[README.md]!(packages/elixir/lumis/README.md) • hexdocs
Javaio.roastedroot:lumis4j:latest--

Contributions welcome! Feel free to open issues or PRs for bugs, features, new themes, or language support.

  • Makeup for setting up the baseline for the Elixir package
  • Inkjet for the Rust implementation in the initial versions
  • Shiki and syntect for providing awesome syntax highlighting

MIT