╔════════════════════════════════════════════════════════════════╗
║ ║
║ ██████╗ ██████╗ ██████╗ ████████╗███████╗██╗███╗ ██╗ ║
║ ██╔══██╗██╔══██╗██╔═══██╗╚══██╔══╝██╔════╝██║████╗ ██║ ║
║ ██████╔╝██████╔╝██║ ██║ ██║ █████╗ ██║██╔██╗ ██║ ║
║ ██╔═══╝ ██╔══██╗██║ ██║ ██║ ██╔══╝ ██║██║╚██╗██║ ║
║ ██║ ██║ ██║╚██████╔╝ ██║ ███████╗██║██║ ╚████║ ║
║ ╚═╝ ╚═╝ ╚═╝ ╚═════╝ ╚═╝ ╚══════╝╚═╝╚═╝ ╚═══╝ ║
║ ██╗ ██╗██╗███████╗██╗ ██╗ ║
║ ██║ ██║██║██╔════╝██║ ██║ ║
║ ██║ ██║██║█████╗ ██║ █╗ ██║ ║
║ ╚██╗ ██╔╝██║██╔══╝ ██║███╗██║ ║
║ ╚████╔╝ ██║███████╗╚███╔███╔╝ ║
║ ╚═══╝ ╚═╝╚══════╝ ╚══╝╚══╝ ║
║ ║
║ (=( )=)~~(=( )=)~~(=( )=)~~(=( )=)~~(=( )=) ║
║ ║
╚════════════════════════════════════════════════════════════════╝
Terminal molecular structure viewer -- load, rotate, and explore proteins, nucleic acids, and small molecules from PDB/CIF files right in your terminal.


--hd defaults to fast text-based HD over SSH, FullHD locally. PNG-compressed Kitty protocol (~10-20x smaller than raw RGBA) makes FullHD viable even over SSH--fetch (optional feature)# Basic install
cargo install --path .
# With RCSB PDB fetch support
cargo install --path . --features fetch
This builds the binary and places it in ~/.cargo/bin/, which is already on your PATH if you installed Rust via rustup. Then run proteinview from anywhere.
# View a local PDB file
proteinview examples/1UBQ.pdb
# HD mode (shaded braille -- fast over SSH)
proteinview examples/4HHB.pdb --hd
# FullHD pixel mode (Sixel/Kitty/iTerm2 -- PNG compressed)
proteinview examples/4HHB.pdb --fullhd
# Choose color scheme
proteinview examples/1UBQ.pdb --color rainbow
# Choose visualization mode
proteinview examples/4HHB.pdb --mode wireframe
# Explicit render mode
proteinview examples/1UBQ.pdb --render halfblock
proteinview examples/1UBQ.pdb --render fullhd
# Fetch from RCSB PDB (requires --features fetch)
proteinview --fetch 1UBQ
| Key | Action |
|---|---|
h / l |
Rotate Y-axis |
j / k |
Rotate X-axis |
u / i |
Rotate Z-axis (roll) |
+ / - |
Zoom in / out |
w/a/s/d |
Pan |
r |
Reset view |
c |
Cycle color scheme |
v |
Cycle visualization mode |
m |
Toggle Braille / HD |
M |
Toggle HD / FullHD (Sixel/Kitty) |
f |
Toggle interface analysis |
I |
Toggle interface interactions |
g |
Toggle ligand visibility |
[ / ] |
Previous / next chain |
Space |
Toggle auto-rotation |
? |
Help overlay |
q |
Quit |
| Mode | Description |
|---|---|
| Cartoon | Ribbon rendering with smooth helices, beta-sheet arrows, and coil tubes; nucleic acid ribbon with base slabs. Default. |
| Backbone | CA trace for proteins, C4' trace for nucleic acids, with spheres at trace positions connected by thick lines. |
| Wireframe | All-atom display showing every bond, including phosphodiester bonds (O3'->P) for nucleic acids. |

| Scheme | Description |
|---|---|
| Secondary Structure | Helix (red), sheet (yellow), coil (green), turn (blue); nucleotide residues get base-type coloring instead. Default. |
| Chain | Each chain gets a distinct color from a curated palette. |
| Element (CPK) | Atoms colored by element (C, N, O, S, H, P, Fe, Mg, Zn, Ca, Mn, Co, Cu, Ni, Cl, Br). |
| B-factor | Blue (low mobility) to red (high mobility) gradient. |
| Rainbow | N-terminus (blue) to C-terminus (red) by residue position. |
| File | Description |
|---|---|
examples/1UBQ.pdb |
Ubiquitin -- 76 residues, single chain, classic test protein |
examples/4HHB.pdb |
Hemoglobin -- 4 chains, 574 residues, good for multi-chain viewing |
examples/1ZVH.cif |
Antibody-antigen complex -- mmCIF format, good for interface analysis |
examples/1BNA.pdb |
B-DNA dodecamer |
examples/1RNA.pdb |
Transfer RNA |
examples/2KGP.pdb |
NMR RNA with mitoxantrone ligand |
examples/1AOI.pdb |
Multi-chain antibody-antigen complex |
Press f to toggle the protein-protein interface panel, which detects inter-chain contacts, highlights interface residues, and identifies ligand binding pockets with their coordinating residues. Press I (Shift+I) to overlay dashed interaction lines color-coded by type: cyan (H-bonds), red (salt bridges), yellow (hydrophobic contacts), gray (other).

--hd) -- shaded braille with Lambert lighting and depth fog. Fast everywhere including SSH.--fullhd) -- Sixel/Kitty/iTerm2 pixel graphics. Best quality. Over SSH, uses PNG compression (~10-20x smaller) for responsive performance.--hd is SSH-aware: defaults to HD (text) over SSH, FullHD locally. Use --fullhd to force pixel graphics regardless of connection.cargo build --release
# With RCSB fetch support:
cargo build --release --features fetch
Contributions welcome! Please open an issue or PR on GitHub.
MIT
$ claude mcp add ProteinView \
-- python -m otcore.mcp_server <graph>