AI Code Editor Examples

10 real-world examples of PraisonAI as an AI code editor – editing files, running tests, and fixing bugs

Overview

PraisonAI functions as a real AI code editor that can:

  • Edit files on disk
  • Run terminal commands (pytest, ruff, etc.)
  • Observe failures and fix them
  • Converge to green tests

This guide covers 10 real-world scenarios demonstrating these capabilities.

CLI Contract (January 2026)

CommandDescriptionKey Flags
praisonai chatTerminal-native REPL-m, -w, -f, -c, -s
praisonai codeTerminal-native code assistant-m, -w, -f, -c, -s
praisonai tuiFull TUI interface-w, -s, -m
praisonai ui chatBrowser-based chat--port, --host
praisonai ui codeBrowser-based code--port, --host

Key Flags

FlagDescription
-m, --modelLLM model to use (default: provider-aware — falls back to gpt-4o-mini when no credential is set; see Models → Provider Auto-Detection)
-w, --workspaceWorking directory for file operations
-f, --fileAttach file(s) to prompt
-c, --continueContinue last session (re-roots tools into the resumed session’s directory)
-s, --sessionResume specific session ID (re-roots tools into the resumed session’s directory)
--no-acpDisable ACP tools
--no-lspDisable LSP tools

Auto-Approval for Automation

Set PRAISON_APPROVAL_MODE=auto to enable non-interactive tool execution. This is the opt-out from the safe default: praisonai code --safe uses prompt, so only set auto for scripted, non-interactive runs where per-call prompts aren’t an option.

bash
PRAISON_APPROVAL_MODE=auto praisonai code -w . "Fix the bug"

Windows Automation

Windows requires additional configuration for non-interactive runs. The --no-acp flag is required to prevent hangs, and UTF-8 encoding must be set for subprocess operations.

Diagram
graph LR
    subgraph "praisonai code on Windows"
        A[👤 User Prompt] --> B{🪟 Windows?}
        B -->|Yes| C[➕ add --no-acp<br/>set PYTHONIOENCODING=utf-8]
        B -->|No|  D[Run as normal]
        C --> E[🤖 Agent edits files<br/>runs tests, fixes bugs]
        D --> E
        E --> F[✅ Green tests]
    end

    classDef input  fill:#6366F1,stroke:#7C90A0,color:#fff
    classDef branch fill:#F59E0B,stroke:#7C90A0,color:#fff
    classDef agent  fill:#189AB4,stroke:#7C90A0,color:#fff
    classDef done   fill:#10B981,stroke:#7C90A0,color:#fff

    class A input
    class B,C branch
    class D,E agent
    class F done

Windows PowerShell Example

powershell
# Windows PowerShell — run praisonai code non-interactively
$env:PRAISON_APPROVAL_MODE = "auto"
$env:PYTHONIOENCODING       = "utf-8"
$env:OPENAI_API_KEY         = "${OPENAI_API_KEY}"

praisonai code -w . --no-acp "Implement celsius_to_fahrenheit in src/converter.py and run pytest until it passes."

Windows cmd.exe Example

cmd
:: Windows cmd.exe
set PRAISON_APPROVAL_MODE=auto
set PYTHONIOENCODING=utf-8
set OPENAI_API_KEY=${OPENAI_API_KEY}

praisonai code -w . --no-acp "Implement celsius_to_fahrenheit in src/converter.py and run pytest until it passes."

Prerequisites

bash
pip install praisonai praisonaiagents
export OPENAI_API_KEY=your-key-here

AI Code Editor Scenarios

1. Implement Code from Specification

Implement a function and run tests until they pass.

bash
praisonai chat -w . -m gpt-4o-mini "Implement the celsius_to_fahrenheit function in src/converter.py. Formula: F = C * 9/5 + 32. Run pytest to verify."

What happens:

  1. Agent reads the existing file
  2. Implements the function with the formula
  3. Runs pytest to verify
  4. If tests fail, fixes and reruns

2. Fix Division by Zero Bug

Fix a bug that causes test failures.

bash
praisonai chat -w . -m gpt-4o-mini "Fix the divide method in calculator.py to raise ValueError('Cannot divide by zero') when b is 0. Run pytest to verify."

What happens:

  1. Agent reads the buggy code
  2. Adds the zero-check with proper error
  3. Runs tests to confirm the fix
  4. Iterates until tests pass

3. Implement Missing Function

Implement a function that’s currently a stub.

bash
praisonai chat -w . -m gpt-4o-mini "Implement the mode function in stats.py. Mode returns the most frequent value. Run pytest -k mode to verify."

What happens:

  1. Agent reads the stub function
  2. Implements the logic using Counter or similar
  3. Runs targeted tests
  4. Fixes any edge cases

4. Fix Empty List Handling

Add proper error handling for edge cases.

bash
praisonai chat -w . -m gpt-4o-mini "Fix mean() in stats.py to raise ValueError('Cannot calculate mean of empty list') for empty input. Run pytest -k mean."

What happens:

  1. Agent adds input validation
  2. Raises appropriate error
  3. Verifies with tests

5. Add CLI Command

Extend a CLI with a new command.

bash
praisonai chat -w . -m gpt-4o-mini "Add a 'version' command to cli.py that prints __version__. Test with: python -m myapp.cli version"

What happens:

  1. Agent reads the CLI code
  2. Adds the version subcommand
  3. Runs the command to verify output

6. Fix Lint Errors

Clean up code style issues.

bash
praisonai chat -w . -m gpt-4o-mini "Run ruff check . to find lint errors. Fix all errors. Run ruff again to verify."

What happens:

  1. Agent runs ruff check .
  2. Reads the error output
  3. Fixes each issue (unused imports, whitespace, etc.)
  4. Reruns ruff until clean

7. Implement Temperature Conversion

Implement the reverse conversion function.

bash
praisonai chat -w . -m gpt-4o-mini "Implement fahrenheit_to_celsius in converter.py. Formula: C = (F - 32) * 5/9. Run pytest -k fahrenheit."

What happens:

  1. Agent implements the function
  2. Runs targeted tests
  3. Fixes any precision issues

8. Fix Median Edge Case

Handle empty list in median function.

bash
praisonai chat -w . -m gpt-4o-mini "Fix median() in stats.py to raise ValueError('Cannot calculate median of empty list') for empty input. Run pytest -k median."

What happens:

  1. Agent adds the validation check
  2. Runs tests to verify
  3. Ensures existing tests still pass

9. Add Type Hints

Improve code with type annotations.

bash
praisonai chat -w . -m gpt-4o-mini "Add type hints to all methods in calculator.py. Example: def add(self, a: float, b: float) -> float:"

What happens:

  1. Agent reads the file
  2. Adds parameter and return type hints
  3. Optionally runs mypy to verify

10. Make All Tests Pass

Fix all remaining issues in a project.

bash
praisonai chat -w . -m gpt-4o-mini "Run pytest to see failing tests. Fix each one by implementing missing functions and fixing bugs. Keep going until ALL tests pass."

What happens:

  1. Agent runs full test suite
  2. Identifies all failures
  3. Fixes each one systematically
  4. Reruns until 100% pass

Key Flags

FlagDescription
-w, --workspaceSet working directory for file operations
-m, --modelLLM model to use (default: provider-aware — falls back to gpt-4o-mini when no credential is set; see Models → Provider Auto-Detection)
-c, --continueContinue previous session
-f, --fileAttach file(s) to prompt
-s, --sessionResume specific session ID

The Closed-Loop Workflow

PraisonAI implements a closed-loop workflow similar to OpenCode:

Agent → Edit File → Run Tests → Read Output → Fix → Repeat

This means:

  • The agent runs commands itself (not you)
  • The agent reads test output itself
  • The agent iterates until success

Tips for Best Results

  1. Use Workspace Flag: Always use -w . to enable file editing
  2. Be Specific: Include file paths and expected behavior
  3. Request Verification: Ask the agent to run tests after changes
  4. Use Cheap Models: Start with gpt-4o-mini for cost efficiency
  5. Continue Sessions: Use --continue for multi-step tasks

Troubleshooting

Agent Not Editing Files

Ensure you’re using the workspace flag:

bash
praisonai chat -w . "your prompt"

Tests Not Running

Make sure pytest is installed in your environment:

bash
pip install pytest

API Key Issues

Set your API key:

bash
export OPENAI_API_KEY=your-key-here

UnicodeDecodeError on Windows

Windows subprocess operations require UTF-8 encoding:

powershell
$env:PYTHONIOENCODING = "utf-8"

praisonai code hangs on Windows

Add the --no-acp flag for Windows automation:

bash
praisonai code -w . --no-acp "your prompt"

Import errors when chaining PYTHONPATH

Use the correct separator for your platform. On Windows use ;, on Unix use :, or use os.pathsep in Python scripts:

python
import os
paths = ["path1", "path2"]
pythonpath = os.pathsep.join(paths)

Related