ducktrace-tui 0.1.0

ducktrace-tui – a TUI for browsing logs and managing services
# **ducktrace-tui**

  
A terminal user interface for browsing logs and managing services – aiming to provide both good UX as well as DX.  

## **Features**

- **πŸ“ Browse local log files** *(default ~/.config/duckTrace/)*

- **🌐 Secure network support - using SSH**

- **βš™οΈ List and view logs of system and user services** *(via journalctl)*

- **πŸ” Scroll through logs with arrow keys, PageUp/Down**

- **πŸ‘οΈ Follow logs in real‑time** *(tail)*

- **πŸ› οΈ Start, stop, restart services**

- **πŸ¦† Works seamlessly with:**
  - [ducktrace-loggger]https://github.com/quackhack-mcblindy/ducktrace-logger *(Rust apps)* 
  - [ducktrace-python]https://github.com/quackhack-mcblindy/ducktrace-python *(Python apps)* 
  - [ducktrace-sh]https://github.com/quackhack-mcblindy/ducktrace-sh *(Bash scripts)*
  - [sytemd]https://github.com/systemd/systemd *(System & User service management)*


<br>   
  
## **Installation**

  
#### **NixOS (using flakes)**

  
Add the flake input and overlay to your configuration:  

```nix
{
  inputs.ducktrace-tui.url = "github:QuackHack-McBlindy/ducktrace-tui";

  outputs = { self, nixpkgs, ducktrace-tui, ... }: {
    nixosConfigurations.myMachine = nixpkgs.lib.nixosSystem {
      modules = [
        {
          environment.systemPackages = [
            ducktrace-tui.packages.${system}.default
          ];
        }
      ];
    };
    
  };}
```

  
  

#### **Build from source**


```bash
$ git clone https://github.com/QuackHack-McBlindy/ducktrace-tui
$ cd ducktrace-tui
$ cargo build --release
# Run the binary
./target/release/ducktrace-tui
``` 
  
    

## **Configuration**

  
The TUI respects these environment variables (they override defaults):  
  
`$DT_LOG_PATH` – directory containing log files *(default: ~/.config/duckTrace/)*  
`$DT_SSH_HOST` - hostname of the machine to browse logs on  
`$DT_SSH_USER` - username to connect to
`DT_SSH_PORT` - SSH port to connect on *(default: 22)*  
  
No other configuration is required – log files with the .log extension are automatically discovered.  
    
  
## **Usage**

  
Run `ducktrace-tui` in your terminal.  
  
  
#### **Keybindings**  
  
| Key              | Action                                         |
|------------------|------------------------------------------------|
| `Tab`            | Switch focus between left (sources) and right (log) panels |
| `↑` / `↓`        | Navigate sources or scroll log                 |
| `PageUp`/`PageDown` | Scroll log by page                          |
| `Enter`          | Load selected source (file or service log)     |
| `f`              | Toggle follow mode (tail log) – right panel only |
| `a`              | Show service actions (start/stop/restart) – left panel only |
| `s` / `t` / `r`  | In action menu: start, stop, restart           |
| `Esc`            | Close popup (error or action menu)             |
| `q`              | Quit                                           |
    

  
<br><br>
  

## **License**

**MIT**