nip/docs/shell-guide.md

194 lines
4.7 KiB
Markdown

# NIP Shell - Interactive Package Management
The NIP Shell provides a powerful, interactive command-line interface for managing packages with advanced features like context-aware prompting, intelligent command completion, and session management.
## Getting Started
Launch the interactive shell:
```bash
nip shell
```
You'll see a context-aware prompt showing your current track:
```
🟢 nip>
```
## Prompt Indicators
The shell prompt provides visual feedback about your current context:
- 🟢 `nip>` - Stable track
- 🟡 `nip:testing>` - Testing track
- 🔴 `nip:dev>` - Development track
-`nip:lts>` - LTS track
- ⚡ - Active transaction indicator
## Command Categories
### 📦 Package Management
- `install <package>` - Install a package
- `remove <package>` - Remove a package
- `search <query>` - Search for packages
- `list [pattern]` - List installed packages
- `show <package>` - Show package information
### ⚡ Transaction Management
- `plan` - Show current transaction plan
- `commit` - Commit pending transaction
- `rollback` - Rollback last transaction
- `status` - Show system status
### 🔧 Session Management
- `track [name]` - Switch tracks or show current track
- `session save <name>` - Save current session
- `session load <name>` - Load saved session
- `session list` - List all saved sessions
### 🔒 Security & Integrity
- `verify <package>` - Verify package integrity
- `diagnose <cid>` - Run forensic diagnosis
- `attest <package>` - Create attestation
- `trust <key>` - Manage trust levels
### 🛠️ Utility Commands
- `help [command]` - Show help information
- `history` - Show command history
- `clear` - Clear screen
- `exit` - Exit shell
## Smart Features
### Intelligent Help System
Get categorized help:
```
🟢 nip> help
```
Get detailed help for specific commands:
```
🟢 nip> help install
Command: install
Description: Install a package
Usage: install <package> [options]
Aliases: add
Examples:
install firefox
install gcc --stream testing
```
### Command Suggestions
The shell provides smart suggestions for typos:
```
🟢 nip> instal
Error: Unknown command: 'instal'
Did you mean: install?
```
### Track Management
Switch between different package tracks:
```
🟢 nip> track testing
Switched from stable to testing
🟡 nip:testing>
```
View current status:
```
🟡 nip:testing> status
NIP Shell Status:
Track: testing
Channels: main, community
Flavor: nexusos
Toolchain: latest
Working Dir: /
No active transaction
Session Created: 2025-08-31 00:50
Last Used: 2025-08-31 00:50
```
## Example Session
Here's a typical workflow using the NIP shell:
```bash
# Launch the shell
$ nip shell
NIP Shell v0.1.0 - Interactive Package Management
Type 'help' for available commands, 'exit' to quit
# Check current status
🟢 nip> status
NIP Shell Status:
Track: stable
Channels: main, community
Flavor: nexusos
...
# Switch to testing track for newer packages
🟢 nip> track testing
Switched from stable to testing
# Search for a package
🟡 nip:testing> search firefox
[Package search results would appear here]
# Get detailed help for install command
🟡 nip:testing> help install
Command: install
Description: Install a package
Usage: install <package> [options]
...
# Save current session for later
🟡 nip:testing> session save work-session
Session saved: work-session
# Exit the shell
🟡 nip:testing> exit
Session saved. Goodbye!
```
## Advanced Features
### Session Persistence
- Sessions automatically save your track, channels, and preferences
- Named sessions allow you to switch between different work contexts
- Session history is preserved across shell restarts
### Command History
- Full command history with persistent storage
- History navigation and search (coming soon)
- Command completion based on history (coming soon)
### Error Recovery
- Intelligent error messages with suggestions
- Graceful handling of invalid commands
- Context-sensitive help for troubleshooting
## Tips and Tricks
1. **Use aliases**: Many commands have short aliases (e.g., `ls` for `list`, `st` for `status`)
2. **Tab completion**: TAB completion for commands and arguments (coming soon)
3. **Command chaining**: Plan complex operations before committing (coming soon)
4. **Session management**: Save different configurations for different projects
5. **Help system**: Use `help <command>` to learn about any command in detail
## Future Features
- TAB completion for commands, packages, and paths
- Command history search and navigation
- Macro system for complex command sequences
- Real-time package monitoring and notifications
- Integration with external tools and editors
The NIP Shell represents the future of package management interfaces - intelligent, context-aware, and designed for productivity.