@mohamadtsn/app-manager
v1.1.2
Published
Interactive CLI tool to manage application shortcuts and installations on Linux
Maintainers
Readme
App Manager 📦
A comprehensive CLI tool for managing desktop shortcuts and application installations with icon support, version updates, and an interactive UI.
Features
✨ Create Desktop Shortcuts - Quickly create .desktop shortcut files for any executable or file
📦 Install Applications - Install executables as full applications with:
- Icon support
- Application menu integration
- Version tracking
- Automatic configuration
🔄 Update Applications - Seamlessly update installed applications with:
- Executable replacement
- Automatic backups
- Version management
📋 Manage Applications - List, view details, and uninstall applications
🎨 Beautiful Terminal UI - Interactive prompts with:
- Colored output
- Spinners and progress indicators
- Validation and error handling
- Smart defaults
Installation
Prerequisites
- Node.js 16+
- Linux with GNOME Desktop Environment (or compatible)
desktop-file-validate(optional, for validation)
Install globally from npm
npm install -g app-managerOr run using npx (without installation)
npx @mohamadtsn/app-managerOr run locally
npm install
npm startUsage
Interactive Mode (Recommended)
Simply run the command:
app-managerThen select from the menu:
- Create Desktop Shortcut - Create a
.desktopfile on your desktop - Install as Application - Install an executable as a managed application
- Update Installed App - Update an already installed application
- List Installed Apps - View all managed applications
- Exit
Features in Detail
Create Desktop Shortcut
- Target any executable, script, or file
- Set custom display name
- Optional icon support
- Run in terminal option
- Pass arguments
- Select desktop category
- Automatic validation
Install Application
- Install executables to
~/.local/share/applications/app-manager/ - Supports installing from archive files (
.tar.gz,.zip) - Copy icons to
~/.local/share/icons/app-manager/ - Store configuration in
~/.config/app-manager/apps.json - Advanced options: terminal mode, default arguments, categories
Update Application
- Select from installed applications
- Replace executable while preserving configuration
- Automatic backup of previous version
- Version tracking
Manage Applications
- List all installed applications with details
- View installation date, version, paths
- Uninstall applications (removes executable, icon, and config)
Configuration
Application configurations are stored in:
~/.config/app-manager/apps.jsonEach app record contains:
{
"name": "My App",
"executablePath": "/home/user/.local/share/applications/app-manager/My App/executable",
"iconPath": "/home/user/.local/share/icons/app-manager/My App.png",
"categories": "Application;",
"terminal": false,
"args": "",
"version": "1.0.0",
"installDir": "/home/user/.local/share/applications/app-manager/My App",
"createdAt": "2024-01-01T00:00:00.000Z",
"updatedAt": "2024-01-01T00:00:00.000Z"
}Directories
- Applications:
~/.local/share/applications/app-manager/ - Icons:
~/.local/share/icons/app-manager/ - Config:
~/.config/app-manager/
Development
Setup
npm installBuild
npm run buildWatch Mode
npm run watchRun Development
npm run devProject Structure
src/
├── cli.ts # Main CLI entry point
├── index.ts # Library exports
├── types/
│ └── index.ts # TypeScript interfaces
├── commands/
│ ├── shortcut.ts # Create shortcut functionality
│ ├── install.ts # Install app functionality
│ ├── update.ts # Update app functionality
│ └── list.ts # List/manage apps functionality
└── utils/
├── file.ts # File operations utilities
└── config.ts # Configuration managementTechnologies
- TypeScript - Type-safe application development
- Chalk - Terminal color output
- Inquirer - Interactive CLI prompts
- Ora - Elegant terminal spinners
License
MIT
Contributing
Contributions are welcome! Please feel free to submit a Pull Request.
