boxmux 0.240.3373

YAML-driven terminal UI framework for rich, interactive CLI applications and dashboards with PTY support
Documentation
app:
  layouts:
    - id: 'developer_workspace'
      root: true
      title: 'Developer Workspace Dashboard'
      # Modern developer theme - dark with syntax highlighting colors
      bg_color: 'black'
      fg_color: 'bright_white'
      selected_fg_color: 'black'
      selected_bg_color: 'bright_green'
      border_color: 'bright_green'
      selected_border_color: 'bright_yellow'
      title_fg_color: 'bright_green'
      title_bg_color: 'black'
      children:
        # Top status bar
        - id: 'status_bar'
          title: 'Development Environment Status'
          position:
            x1: "0%"
            y1: "0%"
            x2: "100%"
            y2: "6%"
          border_color: 'bright_green'
          bg_color: 'black'
          fg_color: 'bright_green'
          refresh_interval: 3000
          script:
            - "echo 'Workspace: $(basename $(pwd)) | Git: $(if git rev-parse --git-dir >/dev/null 2>&1; then git branch --show-current 2>/dev/null || echo \"detached\"; else echo \"not a repo\"; fi) | $(date \"+%H:%M:%S\")'"

        # Project navigator
        - id: 'project_navigator'
          title: 'Project Explorer'
          position:
            x1: "1%"
            y1: "8%"
            x2: "25%"
            y2: "50%"
          tab_order: 1
          border_color: 'blue'
          choices:
            - id: 'project_structure'
              content: 'Project Structure'
              script:
                - "echo 'PROJECT STRUCTURE'"
                - "echo '================'"
                - "if command -v tree >/dev/null 2>&1; then"
                - "  tree -L 3 -I 'node_modules|.git|target|build|dist' 2>/dev/null | head -20"
                - "else"
                - "  find . -maxdepth 3 -type f -name '*.rs' -o -name '*.js' -o -name '*.py' -o -name '*.java' -o -name '*.go' -o -name '*.cpp' | head -15"
                - "fi"
              redirect_output: 'main_display'
            - id: 'git_status'
              content: 'Git Status'
              script:
                - "if git rev-parse --git-dir >/dev/null 2>&1; then"
                - "  echo 'GIT REPOSITORY STATUS'"
                - "  echo '=================='"
                - "  echo 'Branch: '$(git branch --show-current 2>/dev/null || echo 'detached HEAD')"
                - "  echo 'Last commit: '$(git log -1 --pretty=format:'%h - %s (%cr)' 2>/dev/null)"
                - "  echo ''"
                - "  echo 'Working directory status:'"
                - "  git status --porcelain | head -10 || echo 'Working directory clean'"
                - "  echo ''"
                - "  echo 'Recent commits:'"
                - "  git log --oneline -5 2>/dev/null"
                - "else"
                - "  echo 'NOT A GIT REPOSITORY'"
                - "  echo 'Initialize with: git init'"
                - "fi"
              redirect_output: 'main_display'
            - id: 'dependencies'
              content: 'Dependencies'
              script:
                - "echo 'PROJECT DEPENDENCIES'"
                - "echo '=================='"
                - "if [ -f package.json ]; then"
                - "  echo 'Node.js project detected'"
                - "  echo 'Dependencies: '$(jq -r '.dependencies | keys | length' package.json 2>/dev/null || echo 'N/A')"
                - "  echo 'Dev Dependencies: '$(jq -r '.devDependencies | keys | length' package.json 2>/dev/null || echo 'N/A')"
                - "elif [ -f Cargo.toml ]; then"
                - "  echo 'Rust project detected'"
                - "  grep '\\[dependencies\\]' -A 20 Cargo.toml | head -15"
                - "elif [ -f requirements.txt ]; then"
                - "  echo 'Python project detected'"
                - "  wc -l requirements.txt | cut -d' ' -f1 | xargs echo 'Requirements:'"
                - "elif [ -f pom.xml ]; then"
                - "  echo 'Maven project detected'"
                - "  echo 'Dependencies in pom.xml'"
                - "elif [ -f build.gradle ]; then"
                - "  echo 'Gradle project detected'"
                - "  echo 'Dependencies in build.gradle'"
                - "else"
                - "  echo 'No recognized dependency files found'"
                - "  ls -la | grep -E '\\.(json|toml|txt|xml|gradle)$'"
                - "fi"
              redirect_output: 'main_display'
            - id: 'recent_files'
              content: 'Recent Files'
              script:
                - "echo 'RECENTLY MODIFIED FILES'"
                - "echo '====================='"
                - "find . -type f \\( -name '*.rs' -o -name '*.js' -o -name '*.py' -o -name '*.java' -o -name '*.go' -o -name '*.cpp' -o -name '*.h' -o -name '*.ts' \\) -not -path './node_modules/*' -not -path './target/*' -not -path './.git/*' -exec ls -lt {} + 2>/dev/null | head -12"
              redirect_output: 'main_display'

        # Main display area
        - id: 'main_display'
          title: 'Project Details'
          position:
            x1: "27%"
            y1: "8%"
            x2: "75%"
            y2: "50%"
          border_color: 'yellow'
          bg_color: 'black'
          fg_color: 'bright_white'
          content: "Welcome to Developer Workspace\\n\\nSelect an option from Project Explorer to view details\\n\\nFeatures:\\n- Project structure analysis\\n- Git integration\\n- Dependency management\\n- Build system integration\\n- Performance monitoring"

        # Build tools
        - id: 'build_tools'
          title: 'Build & Test'
          position:
            x1: "77%"
            y1: "8%"
            x2: "99%"
            y2: "50%"
          tab_order: 2
          border_color: 'magenta'
          choices:
            - id: 'build_project'
              content: 'Build'
              script:
                - "echo 'BUILDING PROJECT'"
                - "echo '==============='"
                - "if [ -f package.json ]; then"
                - "  echo 'Running npm build...'"
                - "  if command -v npm >/dev/null 2>&1; then npm run build 2>&1 | head -10; else echo 'npm not found'; fi"
                - "elif [ -f Cargo.toml ]; then"
                - "  echo 'Running cargo build...'"
                - "  if command -v cargo >/dev/null 2>&1; then cargo check 2>&1 | head -10; else echo 'cargo not found'; fi"
                - "elif [ -f pom.xml ]; then"
                - "  echo 'Running maven compile...'"
                - "  if command -v mvn >/dev/null 2>&1; then mvn compile 2>&1 | head -10; else echo 'maven not found'; fi"
                - "elif [ -f Makefile ]; then"
                - "  echo 'Running make...'"
                - "  make 2>&1 | head -10"
                - "else"
                - "  echo 'No recognized build system found'"
                - "fi"
              redirect_output: 'build_output'
            - id: 'run_tests'
              content: 'Test'
              script:
                - "echo 'RUNNING TESTS'"
                - "echo '============'"
                - "if [ -f package.json ]; then"
                - "  if command -v npm >/dev/null 2>&1; then npm test 2>&1 | head -10; else echo 'npm not found'; fi"
                - "elif [ -f Cargo.toml ]; then"
                - "  if command -v cargo >/dev/null 2>&1; then cargo test --lib 2>&1 | head -10; else echo 'cargo not found'; fi"
                - "elif [ -f pom.xml ]; then"
                - "  if command -v mvn >/dev/null 2>&1; then mvn test 2>&1 | head -10; else echo 'maven not found'; fi"
                - "else"
                - "  echo 'No test framework detected'"
                - "  echo 'Looking for test files...'"
                - "  find . -name '*test*' -type f | head -5"
                - "fi"
              redirect_output: 'build_output'
            - id: 'lint_check'
              content: 'Lint'
              script:
                - "echo 'CODE QUALITY CHECK'"
                - "echo '================'"
                - "if [ -f package.json ] && command -v eslint >/dev/null 2>&1; then"
                - "  eslint . 2>&1 | head -10"
                - "elif [ -f Cargo.toml ] && command -v cargo >/dev/null 2>&1; then"
                - "  cargo clippy 2>&1 | head -10"
                - "elif command -v pylint >/dev/null 2>&1 && find . -name '*.py' | head -1 >/dev/null; then"
                - "  find . -name '*.py' | head -3 | xargs pylint 2>&1 | head -10"
                - "else"
                - "  echo 'No linter configured for this project'"
                - "  echo 'Checking file permissions and structure...'"
                - "  find . -type f -executable | head -5"
                - "fi"
              redirect_output: 'build_output'
            - id: 'coverage'
              content: 'Coverage'
              script:
                - "echo 'CODE COVERAGE ANALYSIS'"
                - "echo '===================='"
                - "if [ -f package.json ] && command -v nyc >/dev/null 2>&1; then"
                - "  nyc report --reporter=text 2>/dev/null | head -10"
                - "elif [ -f Cargo.toml ] && command -v cargo >/dev/null 2>&1; then"
                - "  echo 'Run: cargo tarpaulin for coverage'"
                - "  cargo test 2>&1 | grep 'test result' | tail -1"
                - "else"
                - "  echo 'No coverage tool detected'"
                - "  echo 'Test file analysis:'"
                - "  find . -path '*/test*' -name '*.rs' -o -name '*.js' -o -name '*.py' | wc -l | xargs echo 'Test files found:'"
                - "fi"
              redirect_output: 'build_output'

        # Development metrics
        - id: 'dev_metrics'
          title: 'Development Metrics'
          position:
            x1: "1%"
            y1: "52%"
            x2: "48%"
            y2: "95%"
          border_color: 'cyan'
          refresh_interval: 10000
          script:
            - "echo 'DEVELOPMENT METRICS'"
            - "echo '=================='"
            - "echo ''"
            - "echo 'Code Statistics:'"
            - "if command -v cloc >/dev/null 2>&1; then"
            - "  cloc . --quiet 2>/dev/null | tail -5"
            - "else"
            - "  echo 'Lines of code analysis:'"
            - "  find . \\( -name '*.rs' -o -name '*.js' -o -name '*.py' -o -name '*.java' \\) -not -path './node_modules/*' -not -path './target/*' -exec wc -l {} + 2>/dev/null | tail -1"
            - "  echo 'File count by type:'"
            - "  find . -type f | sed 's/.*\\.//' | sort | uniq -c | sort -nr | head -5"
            - "fi"
            - "echo ''"
            - "echo 'Git Activity (last 7 days):'"
            - "if git rev-parse --git-dir >/dev/null 2>&1; then"
            - "  git log --since='7 days ago' --oneline 2>/dev/null | wc -l | xargs echo 'Commits:'"
            - "  git log --since='7 days ago' --pretty=format:'%an' 2>/dev/null | sort | uniq | wc -l | xargs echo 'Contributors:'"
            - "else"
            - "  echo 'Not a git repository'"
            - "fi"

        # Build output
        - id: 'build_output'
          title: 'Build Output'
          position:
            x1: "50%"
            y1: "52%"
            x2: "99%"
            y2: "95%"
          border_color: 'red'
          bg_color: 'black'
          fg_color: 'bright_yellow'
          content: "Build output will appear here\\n\\nUse Build & Test box to:\\n- Build your project\\n- Run tests\\n- Check code quality\\n- Analyze coverage\\n\\nSupported build systems:\\n- npm/yarn (Node.js)\\n- cargo (Rust)\\n- maven/gradle (Java)\\n- make (C/C++)\\n- pip (Python)"