@@ -6,24 +6,40 @@ Built with **Rust + Tauri v2** on the backend and **React 19 + Vite + Tailwind C
66
77---
88
9- ## Screenshots
9+ ## 📥 Download Latest Release
1010
11- ### Dashboard — Memory Monitor
12- The main view shows live processes sorted by RAM usage, with a Kill button per process and stat cards for RAM, CPU, Disk, and Battery at the top.
11+ Get the latest stable version (Phase 2) for your operating system:
1312
14- ![ Memory Monitor] ( docs/screenshots/memory-monitor.png )
13+ | Platform | Installer | Portability |
14+ | ---| ---| ---|
15+ | ** Linux (Ubuntu/Debian)** | [ ` .deb ` ] ( https://github.com/The-SudoStart/sysora/releases/latest ) | [ ` .AppImage ` ] ( https://github.com/The-SudoStart/sysora/releases/latest ) |
16+ | ** macOS** | [ ` .dmg ` ] ( https://github.com/The-SudoStart/sysora/releases/latest ) | Native (Universal) |
17+ | ** Windows** | [ ` .msi ` ] ( https://github.com/The-SudoStart/sysora/releases/latest ) | [ ` .exe ` ] ( https://github.com/The-SudoStart/sysora/releases/latest ) |
18+
19+ ---
1520
16- ### Tray Popup
17- Click the tray icon to see a quick CPU/RAM/Disk/Battery health snapshot — without opening the full window.
21+ ## 🚀 Features (Phase 2 Stable)
1822
19- ![ Tray Popup] ( docs/screenshots/tray-popup.png )
23+ ### 📊 Real-time Monitoring
24+ - ** Resource Pulse** : Live CPU and RAM usage history sparklines (last 60s).
25+ - ** Process Manager** : Kill hungry processes with one click, search by name, and sort by memory usage.
26+ - ** Stat Cards** : Instant glance at RAM, CPU, Disk, and Battery health/status.
27+
28+ ### 💾 Storage & Files
29+ - ** Disk usage** : Monitor all mounted partitions and removable drives.
30+ - ** Deep Scanner** : Find what's eating your space! Scan any directory to find the largest files and folders.
31+ - ** Safe Purge** : Delete heavy files/folders directly from the scanner with confirmation.
32+
33+ ### ⚙️ App Management & Settings
34+ - ** Installed Apps** : List and manage installed applications.
35+ - ** Persistence** : Save your preferences for refresh rates and alert thresholds.
36+ - ** Tray Power** : Complete control from the system tray: quick specs, settings, and one-click toggle.
37+ - ** Native Experience** : "Close to Tray" and "Start minimized" support.
2038
2139---
2240
2341## Architecture
2442
25- ### System overview
26-
2743```
2844┌──────────────────────────────────────────────────────┐
2945│ React 19 + Vite frontend │
@@ -32,64 +48,30 @@ Click the tray icon to see a quick CPU/RAM/Disk/Battery health snapshot — with
3248 │ invoke() / emit() (Tauri IPC)
3349┌──────────────────▼───────────────────────────────────┐
3450│ Tauri v2 bridge │
35- │ Commands: get_processes · kill_process · get_sys │
36- │ Events: process-update (emitted every 3s) │
51+ │ Commands: scan_directory · kill_process · settings │
52+ │ Events: scan-progress · process-update │
3753│ Tray: toggle · system-info · settings · quit │
38- └──────────────────┬───────────────────────────────────┘
54+ └──────────────────┬───────────────────────────────────┐
3955 │
4056┌──────────────────▼───────────────────────────────────┐
4157│ Rust backend │
42- │ sysinfo crate │ Process killer │ Battery reader │
58+ │ sysinfo crate │ WalkDir scanner │ Battery reader│
4359│ /proc · WMI · sysctl (cross-platform OS APIs) │
4460└───────────────────────────────────────────────────────┘
4561 Runs on Ubuntu · macOS · Windows
4662```
4763
48- ### Data flow
49-
50- ```
51- OS kernel ──► sysinfo crate ──► Tokio loop (3s) ──► serde_json ──► Tauri IPC ──► React UI
52- │
53- kill_process(pid) ◄────────────────────┘
54- (user clicks Kill)
55- ```
56-
57- ### CI/CD pipeline
58-
59- ```
60- git push --tags
61- │
62- ▼
63- GitHub Actions: release.yml
64- │
65- ┌────┴─────────────────────┐
66- │ │ │
67- ▼ ▼ ▼
68- ubuntu-22.04 macos-latest windows-latest
69- .deb .dmg .msi
70- .AppImage (universal) .exe
71- │ │ │
72- └────┬──────┘──────────────┘
73- ▼
74- GitHub Releases (draft)
75- ```
76-
7764---
7865
7966## Tech Stack
8067
81- | Layer | Technology | Purpose |
82- | ---| ---| ---|
83- | Backend | ** Rust** | Native system access, memory safety, speed |
84- | Desktop framework | ** Tauri v2** | Cross-platform shell, tray icon, IPC bridge |
85- | System info | ** ` sysinfo ` crate** | Processes, RAM, CPU, disk, battery |
86- | Async | ** Tokio** | Background 3-second refresh loop |
87- | Serialization | ** ` serde ` + ` serde_json ` ** | Rust ↔ TypeScript data bridge |
88- | Frontend | ** React 19 + Vite** | Fast HMR dev, component tree |
89- | Styling | ** Tailwind CSS** | Utility-first dark theme |
90- | State | ** Zustand** | Global tab and search state |
91- | Data fetching | ** TanStack Query** | Poll backend, cache, refetch on event |
92- | CI/CD | ** GitHub Actions** | 3-platform release builds |
68+ | Layer | Technology |
69+ | ---| ---|
70+ | ** Backend** | Rust, Tauri v2 |
71+ | ** Frontend** | React 19, Vite, Tailwind CSS |
72+ | ** State** | Zustand, TanStack Query |
73+ | ** Charts** | Recharts |
74+ | ** Icons** | Lucide React |
9375
9476---
9577
@@ -99,145 +81,61 @@ ubuntu-22.04 macos-latest windows-latest
9981sysora/
10082├── src/ # React frontend
10183│ ├── components/
102- │ │ ├── layout/
103- │ │ │ ├── Shell.tsx # Root layout
104- │ │ │ ├── Sidebar.tsx # Nav sidebar
105- │ │ │ ├── TopBar.tsx # Search + live indicator
106- │ │ │ └── StatCard.tsx # RAM/CPU/Disk/Battery cards
107- │ │ └── tabs/
108- │ │ ├── MemoryTab.tsx # ✅ Phase 1 — live processes + kill
109- │ │ ├── ProcessesTab.tsx # ✅ Phase 1 — sortable full list
110- │ │ ├── DiskTab.tsx # ✅ Phase 1 — disk usage
111- │ │ ├── SystemInfoTab.tsx # ✅ Phase 1 — specs + battery health
112- │ │ ├── AppsTab.tsx # 🔲 Phase 2
113- │ │ └── SettingsTab.tsx # 🔲 Phase 2
114- │ ├── lib/
115- │ │ ├── api.ts # All Tauri invoke() calls
116- │ │ └── utils.ts # fmtBytes, fmtUptime, color helpers
117- │ ├── store/
118- │ │ └── app.ts # Zustand store
119- │ ├── types/
120- │ │ └── index.ts # Shared TypeScript types
121- │ ├── App.tsx
122- │ ├── main.tsx
123- │ └── index.css
124- ├── src-tauri/
125- │ ├── src/
126- │ │ ├── main.rs # Entrypoint
127- │ │ └── lib.rs # All Tauri commands + tray setup
128- │ ├── Cargo.toml
129- │ ├── build.rs
130- │ └── tauri.conf.json
131- ├── .github/
132- │ └── workflows/
133- │ └── release.yml # CI/CD — Ubuntu + macOS + Windows
134- ├── index.html
135- ├── package.json
136- ├── vite.config.ts
137- ├── tailwind.config.js
138- ├── tsconfig.json
139- └── LICENSE
84+ │ │ ├── charts/ # History graphs
85+ │ │ ├── tabs/ # Memory, Apps, Disk, Settings
86+ │ │ └── layout/ # Shell, Sidebar, StatCards
87+ ├── src-tauri/ # Rust backend
88+ │ ├── src/lib.rs # Core logic & Commands
89+ │ └── capabilities/ # Security & Permissions
90+ ├── images/ # Project assets (Logo, Icons)
91+ └── .github/workflows/ # CI/CD Release pipeline
14092```
14193
14294---
14395
144- ## Getting Started
96+ ## Getting Started (Dev)
14597
14698### Prerequisites
147-
148- | Tool | Version | Install |
149- | ---| ---| ---|
150- | Node.js | ≥ 20 | [ nodejs.org] ( https://nodejs.org ) |
151- | Rust | stable | ` curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs \| sh ` |
152- | Tauri CLI | v2 | ` npm install --save-dev @tauri-apps/cli@^2 ` |
153-
154- ** Ubuntu only — system libraries required:**
155- ``` bash
156- sudo apt-get update && sudo apt-get install -y \
157- libwebkit2gtk-4.1-dev libappindicator3-dev \
158- librsvg2-dev patchelf libssl-dev pkg-config
159- ```
160-
161- ** macOS only:**
162- ``` bash
163- xcode-select --install
164- ```
165-
166- ---
99+ - ** Node.js** ≥ 20
100+ - ** Rust** (stable)
101+ - ** Tauri v2 CLI** (` npm install -g @tauri-apps/cli ` )
167102
168103### Run in development
169104
170105``` bash
171106# 1. Clone the repo
172- git clone https://github.com/chojuninengu /sysora.git
107+ git clone https://github.com/The-SudoStart /sysora.git
173108cd sysora
174109
175- # 2. Install frontend dependencies
110+ # 2. Install dependencies
176111npm install
177112
178- # 3. Add a placeholder tray icon (required for Tauri to start)
179- mkdir -p src-tauri/icons
180- # Copy any 32x32 PNG as icon.png — replace with real icon later
181- cp /path/to/any-icon.png src-tauri/icons/icon.png
182-
183- # 4. Start dev server (hot-reloads both React and Rust)
113+ # 3. Start dev server
184114npm run tauri dev
185115```
186116
187- The app window opens automatically. The tray icon appears in your system tray.
188-
189- ---
190-
191- ### Build for production
192-
193- ``` bash
194- npm run tauri build
195- ```
196-
197- Output artifacts are in ` src-tauri/target/release/bundle/ ` :
198- - ** Ubuntu:** ` deb/sysora_*.deb ` and ` appimage/sysora_*.AppImage `
199- - ** macOS:** ` dmg/Sysora_*.dmg `
200- - ** Windows:** ` msi/Sysora_*.msi ` and ` nsis/Sysora_*.exe `
201-
202- ---
203-
204- ### Release a new version
205-
206- ``` bash
207- # Bump version in package.json and src-tauri/tauri.conf.json + Cargo.toml, then:
208- git tag v0.2.0
209- git push origin v0.2.0
210- ```
211-
212- GitHub Actions picks up the tag and starts three parallel build jobs. Once complete, artifacts appear as a draft release on GitHub — review and publish.
213-
214117---
215118
216119## Feature Roadmap
217120
218- ### ✅ Phase 1 — Foundation (current)
219- - [x] Tauri 2 + React 19 + Vite + Tailwind scaffold
220- - [x] Tray icon with toggle window / system info / quit
221- - [x] Memory Monitor — live process list sorted by RAM, Kill button per process
222- - [x] Process Manager — full sortable process list with search
223- - [x] Disk Scanner — all mounted disks with usage bars
224- - [x] System Info — OS, CPU, RAM, uptime, battery health (design capacity vs current)
225- - [x] Quick Spec Summary panel — copy/share machine specs
226- - [x] GitHub Actions CI — Ubuntu + macOS + Windows release builds
227-
228- ### 🔲 Phase 2 — Management
229- - [ ] App Manager — list installed applications, uninstall from UI
230- - [ ] Settings — refresh rate, startup on login, notification thresholds
231- - [ ] Battery: macOS and Windows native battery API support
232- - [ ] Disk file scanner — show largest files and folders (home / root)
233- - [ ] CPU history graph (last 60s sparkline)
121+ ### ✅ Phase 1 — Foundation
122+ - [x] Live process list + Kill button
123+ - [x] Disk usage bars
124+ - [x] System specs + Battery health
125+ - [x] Tray popup snapshot
126+
127+ ### ✅ Phase 2 — Management (Current)
128+ - [x] ** App Manager** : List installed applications.
129+ - [x] ** Settings** : Refresh rate, startup behavior, and persistence.
130+ - [x] ** Disk Scanner** : Find largest files/folders with deletion support.
131+ - [x] ** Resource History** : 60s CPU/RAM chart in Memory tab.
132+ - [x] ** Persistence** : Save user settings to JSON.
234133
235134### 🔲 Phase 3 — Polish
236- - [ ] Notifications — alert when RAM or CPU crosses threshold
237- - [ ] Auto-launch on login (all platforms)
238- - [ ] Sysora branded icon + splash screen
239- - [ ] Export system report as PDF
240- - [ ] Dark/light theme toggle
135+ - [ ] Notifications: Alert when RAM/CPU crosses threshold.
136+ - [ ] Branded icon + Splash screen.
137+ - [ ] Export system report as PDF.
138+ - [ ] Full Windows uninstallation logic.
241139
242140---
243141
@@ -258,15 +156,13 @@ This is read from `/sys/class/power_supply/BAT0/` on Linux (`energy_full` vs `en
258156
259157## Contributing
260158
261- Pull requests are welcome! For major changes, please open an issue first.
262-
2631591 . Fork the repo
2641602 . Create a feature branch: ` git checkout -b feat/my-feature `
265- 3 . Commit your changes: ` git commit -m "feat: add my feature" `
266- 4 . Push and open a PR against ` main `
161+ 3 . Commit changes: ` git commit -m "feat: add feature" `
162+ 4 . Open a PR against ` main `
267163
268164---
269165
270166## License
271167
272- [ MIT] ( LICENSE ) © 2024 chojuninengu
168+ [ MIT] ( LICENSE ) © 2024 [ The SudoStart ] ( https://github.com/The-SudoStart )
0 commit comments