# Terminal — rafay.sh

> A shell that drives the whole of rafay.sh. Every page, post, project and registry item is reachable from a command line, and `cat` reads the very markdown you are reading now.

- Canonical page: https://rafay.sh/terminal
- Commands: 29

## How it works

The site's route tree is presented as a filesystem — `/blogs`, `/chunks`, `/projects`, `/fragments`, `/shenanigans/components`, `/shenanigans/hooks` — so `ls`, `cd` and `cat` behave the way you would expect. `cat <path>` fetches that page's markdown representation, which means the terminal is a human-facing client for the same surface agents use.

A command can be deep-linked: https://rafay.sh/terminal?c=cat+blogs runs it on load.

## Commands

### content

- `about`: who abdul rafay is, in full
- `id` (also `me`, `whoami`, `fafo`): name, role, and the bits that matter
- `blogs`: long-form engineering writing
- `chunks`: short, unpolished notes
- `projects`: things i have shipped
- `shenanigans`: an open shadcn registry
- `components`: react components, installable
- `hooks`: react hooks, installable
- `fragments`: events and moments
- `skills` (also `stack`): the stack, as a list
- `experience` (also `work`, `cv`): where i have worked and what i did there
- `contact` (also `socials`, `links`): where to find me

### navigation

- `ls [-l] [path]`: list what is in a directory
- `cd [path]`: change directory
- `pwd`: print the current directory
- `cat <path>`: print a page as markdown
- `read <path>` (also `less`, `more`): open a page in the pager
- `tree [path]`: show the whole site as a tree
- `find <query>` (also `search`, `grep`): search every page by title, tag and description
- `open [path]`: leave the terminal and open the real page

### shell

- `help [command]` (also `?`, `commands`): list every command
- `theme [name]` (also `themes`): switch the colour scheme
- `clear`: wipe the scrollback
- `history`: show what you have run
- `date`: print the current time
- `neofetch`: the obligatory system summary
- `banner`: reprint the greeting
- `man <command>`: show the manual for one command
- `exit` (also `quit`, `logout`): go back to the normal site

## Keys

- `tab` completes commands and paths, twice lists the candidates
- `↑` / `↓` walk the history
- `→` accepts the inline suggestion
- `ctrl+l` clears, `ctrl+c` abandons the line
- inside the pager: `j`/`k` scroll, `space` pages, `/` finds, `g`/`G` jump to the ends, `q` closes

## Themes

The `theme` command offers only the terminal colour schemes. The choice is the site's theme, not a terminal-local one, so it persists everywhere.

## Elsewhere on this site

- [Home](https://rafay.sh/index.md)
- [Writing](https://rafay.sh/blogs.md)
- [Chunks](https://rafay.sh/chunks.md)
- [Projects](https://rafay.sh/projects.md)
- [Components & hooks](https://rafay.sh/shenanigans.md)
- [Fragments](https://rafay.sh/fragments.md)
- [Agent index (llms.txt)](https://rafay.sh/llms.txt)
- [Sitemap](https://rafay.sh/sitemap.xml)
