How daolyap/pickle works
Pickle is a PowerShell 7 shell whose main workflow runs from terminal invocation through its interactive REPL and real PowerShell runspace. The editor, completion, history, and prompt improve command entry; registered commands and plugins expose shell extensions, panels, and platform tooling. Separate branches cover guided command wizards, network diagnostics, Git, Windows package/system management, and configuration sync. README capabilities inform several branches; sampled source confirms selected runtime behavior, but unsampled subsystem wiring is not asserted.
Main entry points: ShellEngine.cs PowerShell engine · Repl.cs Interactive REPL · PanelHost.cs Panel host · LineEditor.cs Line editor
Components 24
Shell experience
- CLI entry
src/Pickle/Program.cs - Application host
src/Pickle.Core/PickleApp.cs - Interactive REPL
src/Pickle.Core/Hosting/Repl.cs - PowerShell engine
src/Pickle.Core/Hosting/ShellEngine.cs - Line editor
src/Pickle.Core/Input/LineEditor.cs - Completion
src/Pickle.Core/Completion/CompletionEngine.cs - History search
src/Pickle.Core/History/HistorySearchOverlay.cs - Prompt and themes
src/Pickle.Core/Prompt/PromptEngine.cs
Commands and extensions
- Aliases
src/Pickle.Core/Aliases/AliasManager.cs - Plugin manager
src/Pickle.Core/Plugins/PluginManager.cs - Command wizards
src/Pickle.Wizards/WizardEngine.cs
Interactive panels
- Panel host
src/Pickle.Tui/PanelHost.cs - Git panel
src/Pickle.Tui/Panels/Git/GitPanel.cs - Files panel
src/Pickle.Tui/Panels/Files/FilesPanel.cs - System panels
src/Pickle.Tui/Panels/System/SystemPanelsPlugin.cs
Domain tools
- Git service
src/Pickle.Core/Git/GitService.cs - Network tools
src/Pickle.Network/NetworkToolsPlugin.cs - DNS client
src/Pickle.Network/DnsClient.cs - Windows services
src/Pickle.Windows/WindowsPlugin.cs - Package manager
src/Pickle.Windows/Winget/WingetService.cs
Configuration and sync
- Configuration
src/Pickle.Core/Config/JsonConfigStore.cs - Sync engine
src/Pickle.Core/Sync/SyncEngine.cs - History storage
src/Pickle.Core/History/JsonlHistoryStore.cs
Other components
- Terminal user
Connections 25
- Terminal user → CLI entry: invokes
- CLI entry → Application host: starts
- Application host → Interactive REPL: runs
- Interactive REPL → PowerShell engine: executes commands
- Interactive REPL → Line editor: reads input
- Line editor → Completion: requests completion
- Line editor → History search: searches history
- Interactive REPL → Prompt and themes: renders prompt
- PowerShell engine → Aliases: hosts alias commands
- PowerShell engine → Plugin manager: loads extensions
- PowerShell engine → Command wizards: runs wizard commands
- PowerShell engine → Panel host: opens panels
- Panel host → Git panel: dispatches panel
- Panel host → Files panel: dispatches panel
- Panel host → System panels: dispatches panel
- Git panel → Git service: uses Git service
- PowerShell engine → Network tools: runs network commands
- Network tools → DNS client: performs DNS queries
- PowerShell engine → Windows services: registers Windows tools
- Windows services → Package manager: provides package operations
- PowerShell engine → Configuration: reads configuration
- PowerShell engine → Sync engine: runs sync commands
- Sync engine → Configuration: merges config
- Sync engine → History storage: merges history
- History search → History storage: searches stored history