2.5 KiB
2.5 KiB
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 planningcrates/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
aim <QUERY>
aim
aim update
aim list
aim search <QUERY>
aim remove <QUERY>
Query Forms
owner/repofor GitHub shorthandappimagehub/<id>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 <QUERY> 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/repoandappimagehub/<id> - 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
Config
Runtime config is loaded from ~/.config/aim/config.toml or $XDG_CONFIG_HOME/aim/config.toml.
Example:
allow_http = true
allow_http = falseis the defaultallow_httponly permits user-suppliedhttp://inputs such as direct URL installs or updates from previously installed direct HTTP origins- provider-resolved downloads such as AppImageHub artifacts remain HTTPS-only even when
allow_http = true
Current Flow Shape
aim <QUERY>installs direct provider matches when available, otherwise falls back to search results, shows live progress on stderr, prints anInstallation Summaryon stdout for installs, and renders anInstallation Reviewwhen tracking needs confirmation- bare
aimprints anUpdate Reviewwithout mutating the registry aim updateexecutes the pending updates, streams live status on stderr, then prints anUpdate Summaryaim listrenders eitherInstalled AppsorNo installed apps yetaim remove <QUERY>resolves a registered application name, streams removal progress on stderr, then prints aRemoval Summary
Terminal UX
- prompts use
dialoguer - styled summaries use
console - live spinners and byte progress use
indicatif