GitHub

The periodic table in your terminal, with the full Wikipedia article for every element. Written in Rust.

Rust License Platform Stay Amazing

Interactive periodic table: all 118 confirmed elements plus the hypothesized 119–126. Move around the category-colored 18-group layout and read each element's structured properties and complete Wikipedia article in the pane below — entirely offline. Built on Crust, part of the Fe2O3 suite.

Features

  • Full table: 118 confirmed elements, plus hypothesized 119–126 (period 8 and the predicted g-block row)
  • Thirteen color modes (keys 1-9, m for the menu, or Ctrl+←/→ to cycle): category, phase at STP, cosmic origin (Big Bang, dying stars, supernovae, neutron-star mergers …), occurrence, block, electronegativity, melting point, density, phase at an adjustable temperature, first ionization energy, role in biology, stable vs no-stable-isotope, and known-by-year — legend in the header bar
  • The temperature instrument: in mode 9, +/- move the temperature (±25 K, or ±250 K with */_) and the table melts and boils as you climb. Mercury goes liquid at 234 K, the alkali metals boil away before 1000 K
  • The history instrument: mode 13 is a year slider. Scrub back and the table empties out; at 1869 you get Mendeleev's 64 elements with the holes at Sc, Ga and Ge that he predicted, and helium flaring as a fresh find. At year 1000 only the nine metals of antiquity are lit
  • Group and period labels on the table; math markup and reference/link tail sections stripped from the articles
  • Wide-terminal layout: on terminals ≥151 columns the property table sits beside the periodic table, leaving the pane below for the article
  • Structured data: mass, density, melt/boil (K and °C), molar heat, group/period/block, shells, electron configuration, electronegativity, electron affinity, ionization energy, appearance, discoverer and year of discovery (Wikidata)
  • Its isotopes (i): hands the element to isotopes, the chart of the nuclides, opened on its most abundant one. Iron lands on Fe-56, at the peak of the binding-energy curve; q there comes straight back here
  • Ask Claude (c): a conversation about the element you're looking at, with its data and article as context; follow-ups keep the thread
  • The complete Wikipedia article for every element, scrollable in the detail pane
  • Offline: one-time fetch, cached at ~/.elements/elements.json (~4 MB); the UI never touches the network
  • Scriptable: elements tungsten | less prints plain text when piped
  • Zero idle cost: event-driven, no timers, no polling
  • Instant: starts in under 20 ms, cache included

Install

Download the prebuilt binary from Releases, or build from source:

cargo build --release
cp target/release/elements ~/.local/bin/

First start fetches the dataset from Wikipedia (about a minute), then everything is local.

Key Bindings

Key Action
← →, h/l Previous / next element by atomic number (walks the whole table, row to row)
↑ ↓, k/j Up / down within the column
< > Same as ← →
1-9, Ctrl+←/→ Color mode (see the list above)
m Mode menu, including the modes past the digits
+ - (* _) Temperature ±25 K (±250 K) in mode 9; year ±5 (±250) in mode 13
J K, Shift+↓/↑ Scroll the article one line
Space, PgUp/PgDn Scroll the article one page
g G Top / bottom of the article
/ Find an element (name, symbol, or atomic number)
i This element's isotopes, in the chart of the nuclides
c Ask Claude about this element (follow-ups keep context)
C Toggle the Claude conversation view
w Open the element's Wikipedia page in the browser
u Re-fetch all data from Wikipedia
? Help
ESC Back to the article (quits from the article view)
q Quit

CLI

elements [ELEMENT] [--fetch]

ELEMENT starts at (or, when piped, prints) that element — by name, symbol, or atomic number. --fetch rebuilds the local dataset.

Data

Structured properties come from the Wikipedia-derived Periodic-Table-JSON dataset; each element also carries its full Wikipedia article via the TextExtracts API. The article texts are CC BY-SA (Wikipedia); the code is public domain.

License

Public domain (Unlicense). Created by Geir Isene.

Read the original on github.com ↗