Installation
Requirements
Julia 1.12 or later
A terminal emulator with Unicode support (virtually all modern terminals)
Install
Install Tachikoma from the repository:
using Pkg
Pkg.add(url="https://github.com/kahliburke/Tachikoma.jl")Or in the Pkg REPL (press ]):
pkg> add https://github.com/kahliburke/Tachikoma.jlFor development:
Pkg.develop(url="https://github.com/kahliburke/Tachikoma.jl")Terminal Recommendations
Tachikoma works in any terminal that supports VT100 escape sequences (basically everything). For the best experience:
Pixel Graphics Support
For pixel-perfect rendering with PixelImage and PixelCanvas, use a terminal with Kitty or sixel graphics support:
| Terminal | Platform | Pixel Graphics |
|---|---|---|
| kitty | Cross-platform | Kitty graphics (fastest) |
| iTerm2 | macOS | Sixel |
| WezTerm | Cross-platform | Sixel |
| foot | Linux (Wayland) | Sixel |
| mlterm | Cross-platform | Sixel |
Standard Terminals
Braille and block rendering work everywhere. These terminals are well-tested:
Terminal.app (macOS) — braille and block backends
GNOME Terminal / Konsole — full support, no pixel graphics
Windows Terminal — full support, no pixel graphics
Alacritty — fast, no pixel graphics
Optional Extensions
Tachikoma uses Julia's package extension system for optional features. Each extension loads automatically when its dependencies are imported, or you can activate it explicitly with a helper function.
GIF Export
Record and export animated GIF files from app recordings and widget demos. Requires FreeTypeAbstraction and ColorTypes:
using Pkg
Pkg.add(["FreeTypeAbstraction", "ColorTypes"])Activate with:
using Tachikoma
enable_gif()
# Then use export_gif, export_gif_from_snapshots, etc.Tables.jl Integration
Enables DataTable to accept any Tables.jl-compatible source (DataFrames, CSV, etc.):
using Pkg
Pkg.add("Tables")Activate with:
using Tachikoma
enable_tables()
# Then pass any Tables.jl source to DataTable
using Tables
dt = DataTable(my_dataframe)DataTable supports sorting, selection, column resize, and horizontal scrolling:
dt = DataTable(
[DataColumn("Package", Any["Tachikoma", "Makie", "Plots", "Genie", "HTTP"]),
DataColumn("Stars", Any["120", "4.8k", "3.2k", "2.1k", "850"]; align=col_right),
DataColumn("Type", Any["TUI", "Plotting", "Plotting", "Web", "HTTP"])];
selected=2,
block=Block(title="Julia Packages"),
)
Markdown Rendering
Enables the MarkdownPane widget for rendering CommonMark content in the terminal. Requires CommonMark:
using Pkg
Pkg.add("CommonMark")Activate with:
using Tachikoma
enable_markdown()
# Then use MarkdownPane
pane = MarkdownPane("# Hello\n\nSome **bold** text")MarkdownPane renders CommonMark with styled headings, lists, code blocks with syntax highlighting, and more:
enable_markdown()
pane = MarkdownPane("# Hello\n\n**Bold**, *italic*, and `code`.")
All extensions can also be activated by directly importing their dependencies (using FreeTypeAbstraction, ColorTypes, using Tables, or using CommonMark) before or after using Tachikoma.
Verify Installation
using Tachikoma
# Check that the module loads and themes are available
println("Tachikoma v", pkgversion(Tachikoma))
println("Active theme: ", theme().name)
println("Themes: ", join([t.name for t in ALL_THEMES], ", "))