# aim AppImage Manager `aim` is a Rust Cargo workspace for managing AppImages from multiple source types. ## Workspace - `crates/aim-core`: business logic, source adapters, registry, install/update planning - `crates/aim-cli`: thin terminal frontend for parsing, prompting, and rendering The split is intentional so a future GUI client can reuse `aim-core` without moving logic out of the shared library. ## Commands ```text aim aim aim update aim list aim search aim remove ``` ## Query Forms - `owner/repo` for GitHub shorthand - `appimagehub/` for AppImageHub shorthand - GitHub repository URLs - GitHub release URLs - direct GitHub release asset URLs - AppImageHub item URLs such as `https://www.appimagehub.com/p/2338455` - `https://...` direct URLs - GitLab URLs - SourceForge URLs - `file://...` local file imports ## Search `aim search ` is part of v0.9 finalisation. - search is provider-extensible and currently includes GitHub plus AppImageHub - search results should resolve to install-ready queries such as `owner/repo` and `appimagehub/` - the search model is provider-extensible for future phases ## Scope Overrides By default `aim` auto-detects whether to use user or system scope. Override that with: - `--user` - `--system` ## Current Flow Shape - `aim ` installs direct provider matches when available, otherwise falls back to search results, shows live progress on stderr, prints an `Installation Summary` on stdout for installs, and renders an `Installation Review` when tracking needs confirmation - bare `aim` prints an `Update Review` without mutating the registry - `aim update` executes the pending updates, streams live status on stderr, then prints an `Update Summary` - `aim list` renders either `Installed Apps` or `No installed apps yet` - `aim remove ` resolves a registered application name, streams removal progress on stderr, then prints a `Removal Summary` ## Terminal UX - prompts use `dialoguer` - styled summaries use `console` - live spinners and byte progress use `indicatif`