How bcicen/ctop works
ctop is a terminal dashboard for live container metrics, with compact multi-container and detailed single-container views. The main workflow initializes configuration and a selected connector, discovers containers, collects metrics, then renders and sorts/filter them in the UI. Docker collection, container lifecycle management, logs, and the documented runC connector are distinct product stages. Edges are limited to relationships shown in excerpts, SOURCE INDEX references, or README statements; unsampled implementation details are not inferred.
Main entry points: main.go ctop Application · docker.go Docker Connector · container/main.go Container Model · menus.go Menus and Actions
Components 20
Application and UI
- ctop Application
main.go - Configuration
config/file.go - Menus and Actions
menus.go - Terminal Widgets
widgets/view.go
Container Connectors
- Connector Registry
connector/main.go - Docker Connector
connector/docker.go - runC Connector
connector/runc.go
Container Runtime Data
- Container Model
container/main.go - Lifecycle Manager
connector/manager/docker.go - Metric Types
models/main.go - Docker Metrics
connector/collector/docker.go - Container Logs
connector/collector/docker_logs.go - Sort and Filter
container/sort.go
Monitoring Views
- Compact Dashboard
cwidgets/compact/grid.go - Metric Rows
cwidgets/compact/row.go - Single View
cwidgets/single/main.go - Log View
cwidgets/single/logs.go - View Layout
grid.go
Other components
- Operator
- Docker Engine
Connections 27
- Operator → ctop Application: runs
- ctop Application → Configuration: loads
main.go - ctop Application → Connector Registry: selects connector
main.go - ctop Application → Compact Dashboard: initializes
main.go - ctop Application → Terminal Widgets: initializes
main.go - Operator → Menus and Actions: uses keybindings
- Menus and Actions → Container Model: invokes actions
menus.go - Menus and Actions → Configuration: updates options
menus.go - Connector Registry → Docker Connector: creates
connector/docker.go - Connector Registry → runC Connector: creates
- Docker Connector → Docker Engine: queries and watches
connector/docker.go - Docker Connector → Docker Metrics: creates
connector/docker.go - Docker Connector → Lifecycle Manager: creates
connector/docker.go - Docker Connector → Container Model: discovers and refreshes
connector/docker.go - Docker Connector → Container Logs: provides
- Container Model → Docker Metrics: starts and reads
container/main.go - Container Model → Lifecycle Manager: delegates lifecycle
container/main.go - Container Model → Metric Types: stores metrics
container/main.go - Docker Metrics → Metric Types: streams
- Container Model → Metric Rows: updates widgets
container/main.go - Container Model → Container Logs: exposes logs
container/main.go - Docker Connector → Sort and Filter: sorts and filters
connector/docker.go - Sort and Filter → Configuration: reads preferences
container/sort.go - Compact Dashboard → Metric Rows: renders rows
- ctop Application → Single View: supports inspection view
- Single View → Log View: includes logs
- ctop Application → View Layout: lays out views
main.go