How myitscloud-org/shiroscout works
1. Overall shape
- ShiroScout is a Tauri desktop application: a React + TypeScript frontend runs in the WebView, while a Rust backend handles Windows/system operations and privileged work.
- The app is oriented around local or remote Windows support workflows for L1/L2 technicians.
2. Frontend shell and navigation
- src/app contains the application shell: router, layout, navbar, sidenav, terminal panel, and top-level routes.
- The routes are mostly thin page entry points; they delegate real work to feature modules instead of embedding logic in the route layer.
3. Feature-based UI modules
- src/features/* is the main UI domain boundary. Each folder represents a technician task area such as:
- device/process/software inventory
- event logs and security logs
- disk, network, services, startup, scheduled tasks
- remote tools, registry browser, SCCM, AD users, Windows Update
- AI diagnostics, quick fixes, fix history, tickets, integrations
- This is where the product’s functional surface area lives, and it maps closely to the pages in the router.
4. Shared UI and cross-cutting client code
- src/components contains reusable UI primitives and common wrappers such as error boundaries, confirm dialogs, toast notifications, loading/empty states, and styled helpers.
- src/hooks, src/lib, src/config, and src/types provide shared client-side behavior: keyboard shortcuts, idle timeout, Tauri command helpers, environment configuration, export utilities, and typed bridges to backend commands.
5. Terminal and command-oriented UX
- The app includes a terminal/console experience (src/features/terminal*, terminal-panel.tsx, terminal-context.tsx) for operational workflows.
- This is a distinct UX path from the normal form-based pages and is likely used for command execution, live output, or session tracking.
6. Rust backend as the system boundary
- src-tauri/src is the execution and integration layer. It exposes commands and services that the frontend calls through Tauri IPC.
- Key backend modules suggest a clear command boundary:
- commands.rs, cmd_catalog.rs, cmdlet_reference.rs for the public command surface
- error.rs, config.rs, environment.rs for backend wiring and failure handling
- rate_limiter.rs for throttling sensitive operations, especially around AI or remote actions
7. Windows/endpoint management subsystems
- Several Rust modules are dedicated to Windows support tasks:
- ps.rs and ps_audit.rs for PowerShell execution and auditing
- system.rs, health_snapshot.rs, screenshot.rs, attestation.rs
- ad.rs, gp.rs, sccm.rs, dpapi.rs, history.rs
- audit.rs, triage.rs, rca.rs, network-oriented and event-fix related logic
- These modules are the core of the product: they gather machine state, run diagnostics, and support remediation.
8. PowerShell and scripted operations
- The backend invokes repository scripts under src-tauri/scripts and top-level scripts/ for tasks like health checks, remote-state capture, VM detection, teardown, backups, and maintenance.
- This scripting layer is a major architectural boundary: the Rust app orchestrates Windows-native PowerShell behavior rather than reimplementing everything in Rust.
9. AI-assisted diagnostics and external integrations
- AI support is first-class in the architecture: src/features/ai-diagnostics, src-tauri/src/llm.rs, and src/features/settings/llm-providers.tsx indicate pluggable LLM providers.
- custom-webhooks, tickets, and integrations suggest outbound integration points for reporting, automation, or workflow handoff.
- The backend’s rate limiting and audit-related modules indicate these external calls are treated as controlled, observable operations.
10. Data, history, and reporting
- The app keeps operational context such as fix history, health snapshots, event-fix mappings, and audit artifacts.
- UI modules like fix-history, desktop-health, and the report-oriented docs/files imply the product is not just for one-off actions; it also supports reviewability and post-incident traceability.
11. Permissions and Tauri security model
- src-tauri/capabilities and generated schemas show the app uses Tauri’s capability system to constrain what the frontend can ask the backend to do.
- That separation matters architecturally: the UI is not directly privileged; backend commands and allowed capabilities define the security boundary.
12. Build, test, and delivery pipeline
- The frontend uses Vite, TypeScript, Biome, and tests in src/components and src/lib.
- The backend uses Rust/Cargo, with Tauri configuration in src-tauri/tauri.conf.json.
- GitHub Actions CI is present, and the repo also includes many operational docs/scripts for release, auditing, and maintenance.
Main entry points: routes Feature pages · commands.rs Backend API · app App shell · event-viewer Diagnostics ops
Components 19
Frontend
React + TypeScript desktop UI in the Tauri WebView
- App shell · Top-level React router, layout, navigation, and terminal panel
src/app - Feature pages · Route entry points for technician workflows and support tasks
src/app/routes - Shell UI · App-wide shell, idle lock, theme, and page chrome
src/features/shell - Terminal UX · Terminal panel and terminal context for command-oriented workflows
src/features/terminal - Inventory ops · Device, system, process, software, and performance views
src/features/system-info - Diagnostics ops · Event logs, security logs, desktop health, and fix history
src/features/event-viewer - Remediation ops · Quick fixes, services, startup, scheduled tasks, disk, and file exploration
src/features/quick-fixes - Remote ops · Remote registry, remote service manager, RDM, and remote tools
src/features/remote-tools - Enterprise ops · AD users, group policy, SCCM, tickets, integrations, and custom webhooks
src/features/ad-users - AI support · AI diagnostics and provider settings for assisted triage
src/features/ai-diagnostics - Shared UI · Reusable dialogs, boundaries, toasts, loading states, and UI primitives
src/components - Client shared · Hooks, env helpers, export utilities, typed Tauri bridges, and fix catalog data
src/lib
Backend
Rust/Tauri integration and Windows execution layer
- Backend API · Public Rust command catalog, config, errors, environment, and rate limiting
src-tauri/src/commands.rs - Windows ops · PowerShell execution, auditing, triage, system state, screenshot, attestation, AD, GP, SCCM, DPAPI, history, and RCA
src-tauri/src/system.rs - LLM backend · Backend LLM provider integration and controlled AI access
src-tauri/src/llm.rs
Scripts
PowerShell orchestration and maintenance automation
- PS scripts · Bundled PowerShell workflows for health checks, VM detection, snapshotting, and teardown
src-tauri/scripts - Repo scripts · Top-level PowerShell and utility scripts for maintenance, scaffolding, backups, and test harnessing
scripts
Meta
Build, security, and repository coordination
- Tauri commands · Typed frontend command surface and generated Tauri bindings
src/types/tauri-types.ts - Capabilities · Tauri capability and schema boundary constraining privileged actions
src-tauri/capabilities
Connections 23
- App shell → Feature pages: routes · App shell renders and navigates between task pages
- App shell → Shell UI: wraps · Shell UI provides global layout, theme, and idle protection
- App shell → Terminal UX: hosts · Terminal experience is surfaced in the main application frame
- Feature pages → Inventory ops: includes · Routes expose inventory and system-state workflows
- Feature pages → Diagnostics ops: includes · Routes expose logs, health, and history workflows
- Feature pages → Remediation ops: includes · Routes expose repair and maintenance workflows
- Feature pages → Remote ops: includes · Routes expose remote administration workflows
- Feature pages → Enterprise ops: includes · Routes expose directory, SCCM, tickets, and integrations workflows
- Feature pages → AI support: includes · Routes expose assisted diagnostics and provider settings
- Feature pages → Terminal UX: uses · Some workflows are command-driven and stream output in the terminal panel
- Diagnostics ops → Shared UI: uses · Pages share dialogs, boundaries, and notification primitives
- Remediation ops → Client shared: uses · Fix flows rely on shared hooks, utilities, and command helpers
- Terminal UX → Client shared: uses · Terminal features use shared client-side helpers and state
- Client shared → Tauri commands: calls · Frontend helpers invoke typed backend commands through Tauri IPC
- Tauri commands → Backend API: bridges · Generated bindings connect the UI to Rust command handlers
- Backend API → Windows ops: orchestrates · Command layer delegates privileged Windows and endpoint operations
- Backend API → LLM backend: routes · Backend mediates AI provider access and diagnostics
- Backend API → Capabilities: constrained by · Privilege is limited by Tauri capabilities and generated schemas
- Windows ops → PS scripts: invokes · Rust services execute bundled PowerShell workflows for endpoint tasks
- PS scripts → Repo scripts: supported by · Repository automation complements the Tauri-bundled scripts
- AI support → LLM backend: consumes · AI diagnostics UI depends on backend LLM integration
- Enterprise ops → Backend API: depends on · Directory, SCCM, and integration features rely on backend commands
- Diagnostics ops → Backend API: depends on · Logs and health views query backend triage and snapshot commands