Overview
PraisonAI interactive modes (praisonai tui launch and praison "prompt") now include ACP (Agentic Change Plan) and LSP (Language Server Protocol) tools by default.
This enables agents to:
- Create, edit, and delete files with plan/approve/apply/verify flow (ACP)
- Analyze code with symbol listing, definition lookup, and reference finding (LSP)
- Execute commands with safety guardrails
Default Tool Groups
| Group | Tools | Description |
|---|---|---|
| ACP | acp_create_file, acp_edit_file, acp_delete_file, acp_execute_command | Safe file operations with plan/approve/apply |
| LSP | lsp_list_symbols, lsp_find_definition, lsp_find_references, lsp_get_diagnostics | Code intelligence |
| Basic | read_file, write_file, list_files, execute_command, internet_search | Standard tools |
Quick Start
Disabling Tool Groups
CLI Flags
Environment Variables
Tool Details
ACP Tools (Agentic Change Plan)
ACP tools route file operations through a plan/approve/apply/verify flow:| Tool | Description |
|---|---|
acp_create_file | Create a new file with content |
acp_edit_file | Edit an existing file |
acp_delete_file | Delete a file (requires approval) |
acp_execute_command | Execute a shell command |
- All destructive operations require approval
- Changes are tracked and can be verified
- Workspace boundary enforcement
LSP Tools (Code Intelligence)
LSP tools provide semantic code analysis:| Tool | Description |
|---|---|
lsp_list_symbols | List functions, classes, methods in a file |
lsp_find_definition | Find where a symbol is defined |
lsp_find_references | Find all references to a symbol |
lsp_get_diagnostics | Get errors and warnings |
- If LSP server is unavailable, tools fall back to regex-based extraction
- Results include
lsp_usedflag to indicate which method was used
Basic Tools
Standard file and search tools:| Tool | Description |
|---|---|
read_file | Read file content |
write_file | Write content to file |
list_files | List directory contents |
execute_command | Run shell commands |
internet_search | Search the web |
Python API
Configuration
ToolConfig Options
| Option | Default | Description |
|---|---|---|
workspace | os.getcwd() | Working directory |
enable_acp | True | Enable ACP tools |
enable_lsp | True | Enable LSP tools |
enable_basic | True | Enable basic tools |
approval_mode | "auto" | Approval mode: auto, manual, scoped |
Approval Modes
| Mode | Description |
|---|---|
auto | Full privileges - all operations auto-approved (default for automation) |
manual | All write operations require explicit approval |
scoped | Safe operations auto-approved, dangerous ones (delete, shell) require approval |
approval_mode=auto, write operations work even without ACP subsystem running. This enables seamless automation and testing.
Environment Variables
| Variable | Description |
|---|---|
PRAISON_TOOLS_DISABLE | Comma-separated groups to disable |
PRAISON_WORKSPACE | Override workspace path |
PRAISON_APPROVAL_MODE | Set approval mode (auto, manual, scoped) |
PRAISON_DEBUG | Set to 1 to enable debug logging |
Debug Logging
Enable debug logging to troubleshoot tool execution:~/.praisonai/async_tui_debug.log.
Architecture
Testing ACP/LSP Tools
The interactive test framework allows you to test ACP and LSP tools in isolation with full tracing and assertions.Tool Tracing
When running tests, all tool calls are captured in a structured trace:Testing Tool Calls
Use the CSV test runner to verify expected tool usage:Tool Assertions
The test harness supports two types of tool assertions:-
Expected Tools: Tools that MUST be called
-
Forbidden Tools: Tools that MUST NOT be called
Running Tool Tests
Inspecting Tool Traces
After running with--keep-artifacts, check the tool_trace.jsonl file:
Testing LSP Fallback
LSP tools gracefully fall back to regex when LSP server is unavailable:Network-Enabled Testing
For tests that require network access (e.g., GitHub operations), use thePRAISON_LIVE_NETWORK environment variable:
Command Allowlist
WhenPRAISON_LIVE_NETWORK=1 is set, the following commands are allowed:
| Category | Commands |
|---|---|
| Git | git |
| GitHub CLI | gh |
| Python | python, python3, pip, pip3, uv, pytest, ruff, black, mypy |
| Node | node, npm, npx |
| Build | make |
| Utilities | echo, cat, ls, pwd, head, tail, wc, grep, find, mkdir, touch, cp, mv |
Blocked Commands
The following commands are always blocked for safety:Secret Redaction
All artifacts automatically redact sensitive information:- GitHub tokens (
ghp_*,gho_*,github_pat_*) - OpenAI keys (
sk-*,sk-proj-*) - AWS credentials (
AKIA*) - Bearer tokens
- Passwords and secrets in config
Related
- Agent-Centric Tools - ACP/LSP tool implementation
- LSP Code Intelligence - LSP details
- Debug CLI - Debug commands
- Interactive TUI Testing - Test framework

