diff --git a/README.md b/README.md index 34233d2bb..cdaa71e21 100644 --- a/README.md +++ b/README.md @@ -78,6 +78,23 @@ Download binaries directly from [GitHub Releases](https://github.com/can1357/oh- --- +## + Python Tool (IPython Kernel) + +
+
+
@@ -151,6 +168,16 @@ Configure different models for different purposes with automatic discovery: - CLI args (`--smol`, `--slow`) and env vars (`OMP_SMOL_MODEL`, `OMP_SLOW_MODEL`) - Configure via `/model` selector with keybindings (Enter=default, S=smol, L=slow) +## + Todo Tool (Task Tracking) + +Structured task management with persistent visual tracking: + +- **`todo_write` tool**: Create and manage task lists during coding sessions +- **Persistent panel**: Todo list displays above the editor with real-time progress +- **Task states**: `pending`, `in_progress`, `completed` with automatic status updates +- **Completion reminders**: Agent warned when stopping with incomplete todos (`todoCompletion` setting) +- **Toggle visibility**: `Ctrl+T` expands/collapses the todo panel + ## + Ask Tool (Interactive Questioning)
@@ -161,6 +188,7 @@ Structured user interaction with typed options: - **Multiple choice questions**: Present options with descriptions for user selection - **Multi-select support**: Allow multiple answers when choices aren't mutually exclusive +- **Multi-part questions**: Ask multiple related questions in sequence via `questions` array parameter ## + Custom TypeScript Slash Commands @@ -284,6 +312,7 @@ Modern terminal interface with smart session management: - **LSP status**: Shows which language servers are active and ready - **Hotkeys**: `?` displays shortcuts when editor empty - **Persistent prompt history**: SQLite-backed with `Ctrl+R` search across sessions +- **Grouped tool display**: Consecutive Read calls shown in compact tree view - **Emergency terminal restore**: Crash handlers prevent terminal corruption ## + Edit Fuzzy Matching @@ -296,6 +325,9 @@ Handles whitespace and indentation variance automatically: ## ... and many more +- **`omp config` subcommand**: Manage settings from CLI (`list`, `get`, `set`, `reset`, `path`) +- **`omp setup` subcommand**: Install optional dependencies (e.g., `omp setup python` for Jupyter kernel) +- **`xhigh` thinking level**: Extended reasoning for Anthropic models with increased token budgets - **Background mode**: `/background` detaches UI and continues agent execution - **Completion notifications**: Configurable bell/OSC99/OSC9 when agent finishes - **Structured git tool**: Safety guards, caching, GitHub operations with typed output @@ -314,7 +346,7 @@ Handles whitespace and indentation variance automatically: | Package | Description | | ------------------------------------------------------ | ----------------------------------------------------------------------------- | -| **[@oh-my-pi/pi-ai](packages/ai)** | Multi-provider LLM client (Anthropic, OpenAI, Gemini, Cursor, Codex, Copilot) | +| **[@oh-my-pi/pi-ai](packages/ai)** | Multi-provider LLM client (Anthropic, OpenAI, Gemini, Bedrock, Cursor, Codex, Copilot) | | **[@oh-my-pi/pi-agent-core](packages/agent)** | Agent runtime with tool calling and state management | | **[@oh-my-pi/pi-coding-agent](packages/coding-agent)** | Interactive coding agent CLI | | **[@oh-my-pi/pi-git-tool](packages/git-tool)** | Structured Git tool with safety guards and typed output | diff --git a/assets/python.webp b/assets/python.webp new file mode 100644 index 000000000..38cc50584 Binary files /dev/null and b/assets/python.webp differ diff --git a/packages/coding-agent/src/migrations.ts b/packages/coding-agent/src/migrations.ts index 68c913da7..71382a38b 100644 --- a/packages/coding-agent/src/migrations.ts +++ b/packages/coding-agent/src/migrations.ts @@ -10,26 +10,6 @@ import { AgentStorage } from "./core/agent-storage"; import type { AuthCredential } from "./core/auth-storage"; import { logger } from "./core/logger"; -/** - * Migrate PI_* environment variables to OMP_* equivalents. - * If PI_XX is set and OMP_XX is not, set OMP_XX to PI_XX's value. - * This provides backwards compatibility for users with existing PI_* env vars. - * - * @returns Array of PI_* env var names that were migrated - */ -export function migrateEnvVars(): string[] { - const migrated: string[] = []; - for (const [key, value] of Object.entries(process.env)) { - if (key.startsWith("PI_") && value !== undefined) { - const ompKey = `OMP_${key.slice(3)}`; // PI_FOO -> OMP_FOO - if (process.env[ompKey] === undefined) { - process.env[ompKey] = value; - migrated.push(key); - } - } - } - return migrated; -} /** * Migrate legacy oauth.json and settings.json apiKeys to agent.db. @@ -199,24 +179,12 @@ export async function runMigrations(_cwd: string): Promise<{ migratedAuthProviders: string[]; deprecationWarnings: string[]; }> { - // First: migrate env vars (before anything else reads them) - const migratedEnvVars = migrateEnvVars(); - // Then: run data migrations const migratedAuthProviders = migrateAuthToAgentDb(); migrateSessionsFromAgentRoot(); migrateToolsToBin(); - // Collect deprecation warnings - const deprecationWarnings: string[] = []; - if (migratedEnvVars.length > 0) { - for (const envVar of migratedEnvVars) { - const ompVar = `OMP_${envVar.slice(3)}`; - deprecationWarnings.push(`${envVar} is deprecated. Use ${ompVar} instead.`); - } - } - - return { migratedAuthProviders, deprecationWarnings }; + return { migratedAuthProviders, deprecationWarnings: [] }; } /**