Documentation menu

Documentation

Ops apps

Processes, containers, environments, webhooks and deploys.

On this page

Overview

Five apps for the machine underneath the work: what is running, what is in containers, what is in the environment, what is arriving over HTTP, and what is deploying.

None of them have a tde agent verb. Agents drive them the same way they drive any other window — with the generic screen, key and mouse verbs in the agent API.

TDE Process

A pik-inspired process viewer. The table carries USER, PID, CPU%, MEM, TIME, CMD, PATH, and refreshes every ten seconds — or immediately when you press r.

Focus moves through a ring: the search field, the scope pill, the column header, the table, and the Kill button.

KeyAction
/Search
/ Move focus, or move the selection in the table
/ On the header, cycle the sort column
Home / EndFirst / last row
Enter, SpaceActivate whatever is focused — on the table, that is Kill
xKill the selected process
rRefresh now
Esc (in search)Clear the filter
qClose the window

Search is a plain substring match — there is no query syntax — but it is matched against the process name, user, command line, executable path, PID and parent PID at once, so typing a port-less fragment of a command finds it.

Sorting is available on three columns: Name, CPU and MEM, defaulting to MEM descending. Pressing the same column again flips the direction. The scope pill toggles between Apps only and All processes; the former hides kernel threads and OS daemons.

The kill re-validates the process identity it captured before signalling, so a recycled PID does not get the signal meant for something else.

TDE Container

Docker, straight over the socket. TDE Container talks to the daemon through the Rust bollard client and never shells out to the docker CLI — so it works on a machine where the CLI is not installed, and it respects DOCKER_HOST.

The list shows NAME, IMAGE, STATE, STATUS, UPTIME. Opening a container gives seven tabs: Overview, Networking, Ports, Volumes, Command, Logs, Processes, all derived from a live inspect, plus one-shot stats rendered as sparklines.

KeyList viewDetail view
, j kMove the selectionMove focus or scroll
Enter, , SpaceOpen the detailActivate the focused element
17Jump to a tab
/Filter the listFilter Logs or Processes
cClear the active filter
rRefreshRefresh
s / t / eStart / stop / restartSame
x, DeleteRemoveRemove
EscClose the windowBack to the list

Every write action raises a confirmation dialog first.

TDE Env

An editor for environment variables, in two modes.

Project mode discovers a directory's .env* files and edits their key/value pairs in a table, writing back while preserving comments, ordering and quoting. It applies the Vite/Next precedence you already expect, highest first:

bash
.env.<mode>.local
.env.<mode>
.env.local
.env

.env.example is listed and editable but excluded from the merged result, so a committed template never leaks into the effective environment.

System mode is a pinned source at the top of the sidebar showing the process environment.

KeyAction
Ctrl+SSave the file, or apply System edits for this session
Ctrl+PPersist System overrides to disk
Ctrl+RReload
Ctrl+EReveal masked values
TabCycle sidebar, editor and the action row
/ (sidebar)Switch source
qClose the window

Values are masked when the key ends with _KEY, _TOKEN, _SECRET or _PASS, or contains PASSWORD or APIKEY. Ctrl+E reveals them.

Ctrl+G in TDE Shell opens TDE Env at that shell's current directory.

TDE Webhook

A local inbound receiver so you can see exactly what a third party is posting to you. It is deliberately passive: it acknowledges every request with a 200, keeps the newest captures, and never forwards or acts on a payload.

Press Start and it binds an ephemeral port on 127.0.0.1 — there is no fixed port to remember, and nothing is listening until you ask for it. Copy URL puts the endpoint on your clipboard.

Three panes: Endpoints (derived from the distinct paths you have actually received), Deliveries (newest first), and a Delivery details drawer with the timestamp, peer IP, method, path, headers and body.

KeyAction
/ Move across Actions, Endpoints, Deliveries and Details
/ Move within the focused pane
PageUp / PageDownScroll by 8
Home / EndTop / bottom
Enter, SpaceRun the focused action, or select
EscClose the details drawer, then the window

Captures cap at 200 requests and bodies at 256 KiB (the sender still gets its 200). History is kept at ~/.tde/webhook/captures.v1; Clear deletes it.

Receiving from the internet

The Public action exposes the receiver through a Tailscale Funnel. It needs Web Share running with its reach set to Public; until then the button reads Web Share and takes you to that panel instead. Stopping the receiver tears the funnel down.

TDE Vercel

A monitor for your Vercel deployments. Columns: STATUS, PROJECT, ENV, BRANCH, COMMIT, AGE, AUTHOR, MESSAGE, with statuses bucketed into Ready, Building, Queued, Error, Canceled and Unknown.

Connect once with a token and, optionally, a team. The Team field accepts either a team_… id or a team slug. The token goes into the encrypted vault; only the team and the refresh cadence are written to ~/.config/tde/vercel.toml. Disconnecting deletes the vault entry.

KeyAction
rRefresh
Enter, SpaceOpen the build logs for the selected deployment
oOpen the deployment in the browser
yCopy its URL
cCancel it — in-flight deployments only, with a confirmation
tBack to the connection settings
/ , Home / EndMove the selection
Tab, Focus the toolbar
Esc, qClose

In the log view, and scroll a line and PageUp/PageDown scroll twenty; scrolling turns follow-mode off so the tail stops jumping away from you. Esc goes back to the list.

The list refreshes every 30 seconds by default, and will not go below 5.