Skip to content

Feature Request: Redesign --show-dashboard UI for Reduced Terminal Footprint #6

Description

@skkdevcraft

Redesign the agentignore mount --show-dashboard terminal UI to be more compact, adaptive, and less intrusive during normal development workflows.

The current dashboard provides useful real-time information, but it occupies a significant portion of the terminal and does not appear to adapt when the terminal window is resized.

The primary purpose of the dashboard should be monitoring filesystem activity. Performance metrics and status information should remain visible, but consume as little screen space as possible.

Motivation

When using AgentIgnore during active development, terminal space is valuable.

Current observations:

  • The dashboard consumes a large number of terminal rows.
  • Important activity information can be pushed off-screen.
  • Terminal resize events are not handled gracefully.
  • The layout feels more like a full-screen dashboard than a lightweight monitor.

For long-running sessions, I would prefer a more subtle UI that stays out of the way while still providing visibility into what the agent is accessing.

Proposed Goals

1. Responsive Terminal Layout

The dashboard should detect terminal resize events and automatically reflow its layout.

Examples:

  • Expanding the terminal should allow more activity rows to be shown.
  • Shrinking the terminal should reduce non-essential sections.
  • No overlapping or broken rendering after resize.

2. Prioritize Activity Stream

The most important information is:

  • Which files are being accessed
  • Which accesses are allowed
  • Which accesses are denied

The activity feed should receive the majority of available screen space.

Suggested Layout

Instead of dedicating multiple rows to statistics, consider a compact status area.

Example:

agentignore mounted at: ./workspace

[ALLOW] npm -> package.json
[ALLOW] npm -> src/index.ts
[DENY ] agent -> .env
[ALLOW] cargo -> Cargo.toml
[ALLOW] cargo -> src/main.rs

                                           ops: 1247
                                      allowed: 1201
                                       denied: 46
                                      latency: 0.4ms

Or a single-line status bar:

ops:1247 | allow:1201 | deny:46 | latency:0.4ms | mounted

This preserves almost the entire terminal for the activity stream.

3. Compact Mode

Consider introducing a compact dashboard mode:

agentignore mount --show-dashboard --compact

or making compact mode the default.

The compact view would:

  • Display only essential metrics.
  • Maximize visible activity history.
  • Reduce visual noise.

4. Optional Expanded View

Power users may still want detailed statistics.

Possible approaches:

  • Toggle expanded metrics with a key press.
  • Provide a separate verbose dashboard mode.
  • Collapse rarely changing information.

Example:

m = toggle metrics
h = help
q = quit

5. Better Information Density

Metrics could be grouped into a single status line rather than multiple dashboard sections.

Example:

mounted | ops=1247 | allow=1201 | deny=46 | p50=0.3ms | p95=0.9ms

This provides the same information while consuming only one row.

Alternative Direction

Another approach would be a "tail-like" interface where:

  • Nearly the entire screen is dedicated to recent events.
  • Metrics are displayed in a small header or footer.
  • The UI behaves similarly to tools such as htop, tail -f, or log viewers.

This may align better with the primary use case of observing what an agent is accessing in real time.

Expected Benefits

  • Better use of limited terminal space.
  • Improved readability during development.
  • More visible access history.
  • Better behavior on terminal resize.
  • Less intrusive monitoring experience.
  • Improved usability on smaller terminals and split-pane layouts.

Implementation Constraints

No Additional Dependencies

I would strongly prefer that this redesign does not introduce any new crates or external TUI frameworks.

The dashboard is a secondary convenience feature rather than the primary purpose of AgentIgnore. Adding dependencies solely to support a richer dashboard would increase maintenance burden, compilation time, dependency surface area, and potential security exposure.

The requested improvements should ideally be implemented using:

  • Existing project dependencies.
  • Standard terminal APIs already available in the codebase.
  • Lightweight custom rendering logic.

Examples of frameworks that I would prefer not to introduce solely for this feature:

  • ratatui
  • tui-rs
  • cursive
  • termion-based dashboard frameworks
  • other full-screen TUI ecosystems

Adaptive Layout Without Additional Crates

A simple custom layout engine would likely be sufficient.

For example, dashboard sections could have priorities:

Priority 1: Activity stream
Priority 2: Status line
Priority 3: Performance metrics
Priority 4: Extended diagnostics

As terminal height decreases:

  1. Extended diagnostics collapse first.
  2. Performance metrics collapse into a single-line summary.
  3. Status remains visible.
  4. Activity stream always receives the remaining space.

This would provide responsive behavior without requiring a heavyweight TUI framework.

Philosophy

The dashboard should remain:

  • Lightweight
  • Dependency-free
  • Fast
  • Easy to maintain

The monitoring UI should support the core AgentIgnore functionality without becoming a significant subsystem of its own.

Metadata

Metadata

Assignees

No one assigned

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions