Skip to content

Installation

Requirements

  • Julia 1.12 or later

  • A terminal emulator with Unicode support (virtually all modern terminals)

Install

Install Tachikoma from the repository:

julia
using Pkg
Pkg.add(url="https://github.com/kahliburke/Tachikoma.jl")

Or in the Pkg REPL (press ]):

pkg> add https://github.com/kahliburke/Tachikoma.jl

For development:

julia
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:

TerminalPlatformPixel Graphics
kittyCross-platformKitty graphics (fastest)
iTerm2macOSSixel
WezTermCross-platformSixel
footLinux (Wayland)Sixel
mltermCross-platformSixel

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:

julia
using Pkg
Pkg.add(["FreeTypeAbstraction", "ColorTypes"])

Activate with:

julia
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.):

julia
using Pkg
Pkg.add("Tables")

Activate with:

julia
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:

julia
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"),
)
datatable_install example

Markdown Rendering

Enables the MarkdownPane widget for rendering CommonMark content in the terminal. Requires CommonMark:

julia
using Pkg
Pkg.add("CommonMark")

Activate with:

julia
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:

julia
enable_markdown()
pane = MarkdownPane("# Hello\n\n**Bold**, *italic*, and `code`.")
markdown_install example

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

julia
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], ", "))