mirror of
https://github.com/khodges42/exoshell.git
synced 2026-06-14 18:08:37 +00:00
162 lines
7.3 KiB
Markdown
162 lines
7.3 KiB
Markdown
# Exoshell Phases
|
|
|
|
This roadmap turns the project vision into concrete build phases. The phases are intentionally ordered from the smallest useful shell-adjacent assistant toward the broader cognitive shell described in `README.md` and `docs/DESIGN.md`.
|
|
|
|
## Phase 1: Shell-Adjacent Model Chat
|
|
|
|
Goal: ship a usable terminal program that lets a user talk to a model from PowerShell, bash, zsh, and similar shells without replacing the shell.
|
|
|
|
Core features:
|
|
|
|
- CLI entry point, likely `exoshell`, that runs as a normal terminal application.
|
|
- Provider configuration for at least one OpenAI-compatible backend.
|
|
- Local-first-compatible model adapter interface, even if the first implementation targets one backend.
|
|
- Interactive chat loop with streaming responses.
|
|
- Basic command suggestion formatting that distinguishes prose, shell commands, and warnings.
|
|
- Explicit copy/paste-oriented workflow: Exoshell suggests commands, the user remains responsible for execution.
|
|
- Cross-platform terminal behavior on Windows, macOS, and Linux.
|
|
- Shell-family awareness for PowerShell versus POSIX-like shells.
|
|
- Basic session transcript saved as markdown.
|
|
- Minimal config file for provider, model, default shell family, and notebook location.
|
|
- Clear error handling for missing API keys, provider failures, and interrupted requests.
|
|
|
|
User experience:
|
|
- User should be able to run "exo this is a prompt" and get a response, the program exiting
|
|
- User should be able to run exo (without a prompt) and have an open session, or "exo this is a prompt --stay" (or a more appropriate flag) to keep the shell/conversation open
|
|
- User should be able to pipe (bash) or powershell equivalent into exo and have it treated as a prompt, with the additional context of the command run that sent the pipe, cwd, etc.
|
|
- For example, "ls | exo" should send a prompt similar to "{"command": "ls", "stdout": "foo bar baz", "cwd": "/foo/bar"}" and any relevant system prompts
|
|
Non-goals:
|
|
|
|
- PTY control of the user's shell.
|
|
- Hotkeys that inject commands into the shell.
|
|
- Ambient context collection.
|
|
- Tree-sitter repo indexing.
|
|
- Long-term memory.
|
|
- Stances and personalities beyond a fixed default behavior.
|
|
- Autonomous command execution.
|
|
|
|
Exit criteria:
|
|
|
|
- A user can install/run Exoshell, configure a model backend, ask for help from a terminal, receive command suggestions appropriate to PowerShell or bash/zsh, and save the session transcript.
|
|
- The implementation has a small automated test suite for provider abstraction, shell-family prompt behavior, config loading, and transcript writing.
|
|
|
|
## Phase 2: Context, Modes, and Operator Controls
|
|
|
|
Goal: make Exoshell feel like an operational overlay instead of a generic chat client.
|
|
|
|
Core features:
|
|
|
|
- Explicit context commands for adding files, command output, directory summaries, and pasted logs.
|
|
- Session-scoped context panel or context summary visible in the TUI.
|
|
- Stances such as `operator`, `audit`, `teach`, and `quiet`.
|
|
- Hotkeys for accepting, copying, explaining, and discarding suggested commands.
|
|
- Safer command suggestion UI with destructive-command detection and confirmation language.
|
|
- Context budget management with visible token or character estimates.
|
|
- Shell-specific command rendering and explanation for PowerShell and POSIX-like shells.
|
|
- Notebook improvements: title, timestamps, model metadata, commands suggested, and user-marked discoveries.
|
|
- Basic configuration profiles for different providers and shells.
|
|
|
|
Non-goals:
|
|
|
|
- Passive screen watching.
|
|
- Full PTY embedding.
|
|
- Repository-wide semantic indexing.
|
|
- Long-term memory outside user-controlled markdown/log files.
|
|
|
|
Exit criteria:
|
|
|
|
- A user can deliberately attach context, switch stance, inspect what context is being sent, and act on suggestions through predictable terminal controls.
|
|
|
|
## Phase 3: Repo Awareness and Operational Notebooks
|
|
|
|
Goal: give Exoshell useful project awareness while keeping memory inspectable and scoped.
|
|
|
|
Core features:
|
|
|
|
- Repo detection and project-root selection.
|
|
- File tree summaries with ignore rules.
|
|
- Structural parsing for common languages using tree-sitter where practical.
|
|
- Commands to add source files, symbols, recent git changes, and test output to context.
|
|
- Markdown notebooks scoped by global, repo, task, and session.
|
|
- Searchable operational notes and discoveries.
|
|
- Runbook generation from session notes.
|
|
- Diff-oriented patch suggestions that require user review.
|
|
- Better uncertainty reporting through explicit signal strength.
|
|
|
|
Non-goals:
|
|
|
|
- Hidden long-term behavioral profiling.
|
|
- Blind patch application.
|
|
- Autonomous multi-file rewrites.
|
|
|
|
Exit criteria:
|
|
|
|
- A user can open a repo, ask informed questions about local code and recent command output, preserve useful notes, and generate reviewable runbooks or patch suggestions.
|
|
|
|
## Phase 4: Follow Mode and Shell Integration
|
|
|
|
Goal: let Exoshell observe explicit shell activity and provide contextual help without becoming a replacement shell.
|
|
|
|
Core features:
|
|
|
|
- PTY or shell-hook integration strategy for supported environments.
|
|
- Follow mode that can ingest selected command history, stdout/stderr snippets, current directory, and exit status.
|
|
- User-visible controls for what is observed and retained.
|
|
- Hotkey workflows for sending command output to Exoshell.
|
|
- Optional paste-to-shell and paste-and-run flows with clear confirmation boundaries.
|
|
- Command outcome interpretation and next-step suggestions.
|
|
- Per-shell integration docs for PowerShell, bash, zsh, and fish.
|
|
|
|
Non-goals:
|
|
|
|
- Covert monitoring.
|
|
- Unreviewed execution.
|
|
- Replacing the user's shell configuration.
|
|
|
|
Exit criteria:
|
|
|
|
- A user can work in their normal shell while Exoshell follows explicitly permitted context and offers useful, nonintrusive operational guidance.
|
|
|
|
## Phase 5: Tuning, Extensibility, and Local-First Depth
|
|
|
|
Goal: make Exoshell configurable, hackable, and effective with weaker local models.
|
|
|
|
Core features:
|
|
|
|
- Robust local model support through OpenAI-compatible local servers and/or dedicated adapters.
|
|
- Prompt and stance customization.
|
|
- User-editable command policies and safety rules.
|
|
- Extension points for tools, context providers, and notebook processors.
|
|
- Model routing by task type.
|
|
- Context compression and retrieval tuned for smaller models.
|
|
- Export/import of user configuration and notebooks.
|
|
- Advanced visual themes that remain restrained and terminal-native.
|
|
|
|
Non-goals:
|
|
|
|
- Cloud lock-in.
|
|
- Manager analytics.
|
|
- Personality behavior that compromises operational clarity.
|
|
|
|
Exit criteria:
|
|
|
|
- A technical user can tune Exoshell to their environment, run local-first workflows, and extend context/tool behavior without modifying core code.
|
|
|
|
## Phase 6: Mature Cognitive Shell Overlay
|
|
|
|
Goal: converge on the broader vision: a calm, inspectable, practitioner-oriented cognitive shell environment.
|
|
|
|
Core features:
|
|
|
|
- Mature cockpit-style TUI with dense but readable operational instrumentation.
|
|
- Stable shell integrations across major platforms.
|
|
- High-quality repo, session, task, and notebook workflows.
|
|
- Reviewable command, patch, and runbook pipelines.
|
|
- Strong safety posture around destructive commands and hidden state.
|
|
- Comprehensive docs for installation, configuration, shell integration, model backends, stances, notebooks, and local-first operation.
|
|
- Packaging and release automation.
|
|
|
|
Exit criteria:
|
|
|
|
- Exoshell is a dependable daily-driver assistant for terminal-native practitioners who want AI augmentation while preserving control and understanding.
|