Skip to content

ujjwalvivek/devhub

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

13 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Devhub

stars updated health releases

Native egui/eframe desktop app that scans filesystems and SSH hosts for software projects (Cargo.toml, package.json, go.mod, etc.), indexes them, and presents a three-pane browser with file tree, content search, git state, and telemetry.

cargo run --release # from the project root, requires rust 2024

Dependencies

eframe 0.31 (wgpu) egui_extras 0.31 serde 1 + toml 0.8 resvg 0.37 open 5
ignore 0.4 directories 6 tracing 0.1 + tracing-subscriber anyhow 1 rfd 0.14

Architecture

src/
├── main.rs            // eframe entry, window config, config load
├── app.rs             // devhub state, sources overlay, file tree and picker
├── config.rs          // serde TOML config, scan dirs, remote hosts, editors, theme, appearance
├── discovery/
│   ├── mod.rs
│   └── scanner.rs     // scanning, marker-file detection, git state, remote SSH piped find
├── workspace.rs       // file tree listing, file read, remote SSH grep
├── editor.rs
├── cache.rs           // TOML-serialized project cache (versioned)
└── ui/
    └── theme.rs       // 5 themes, monaspace neon font, thread-local colors

Config.toml Configuration

theme = "CatppuccinMocha"
appearance = "System"
scan_dirs = ["~/projects"]
max_depth = 3
remote_hosts = [
  { host = "user@server", roots = ["/home/user/projects"], max_depth = 3 }
]
default_editor = "code"
[editors.code]
command = "code {path}"
remote = "vscode-remote://ssh-remote+{host}{path}"

What's in it?

  • local (ignore::WalkBuilder, respects .gitignore) and remote (SSH find + stat + git config)
  • types detected include Rust (Cargo.toml), Node (package.json), Go (go.mod), Python (requirements.txt), Make, CMake, Assembly (.asm), .NET (.sln), Java (Gradle/Maven)
  • collapsible directories, file icons, cap at 500 entries
  • local searches via ignore crate, remote searches via SSH grep -RIn, 200-hit cap
  • SSH-over-pipe, BatchMode, configurable max depth per host
  • SVG rendered via resvg from echopoint.ujjwalvivek.com
  • launcher defaults include VS Code (local + SSH remote URI), Zed (local)
  • Catppuccin Mocha, Rose Pine Moon, Tokyo Night Storm, Horizon Bold, Monochrome Zero + light variants; follows OS theme
  • background thread scanning → mpsc channel → cache to disk (TOML, versioned)
  • TOML at platform config dir (~/.config/devhub/config.toml or %APPDATA%/devhub/config.toml)

About

Native desktop app for scanning, indexing, and browsing local and remote SSH software projects, with telemetry tracking powered by Echopoint.

Topics

Resources

License

Stars

Watchers

Forks

Packages

 
 
 

Contributors