Skip to main content

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

GroupToolsDescription
ACPacp_create_file, acp_edit_file, acp_delete_file, acp_execute_commandSafe file operations with plan/approve/apply
LSPlsp_list_symbols, lsp_find_definition, lsp_find_references, lsp_get_diagnosticsCode intelligence
Basicread_file, write_file, list_files, execute_command, internet_searchStandard tools
All groups are enabled by default in interactive modes.

Quick Start

# Run with all default tools (ACP + LSP + Basic)
praison "Create a Python file that calculates fibonacci numbers"

# Launch TUI with all default tools
praisonai tui launch

Disabling Tool Groups

CLI Flags

# Disable ACP tools (no file modification capabilities)
praison "Analyze this code" --no-acp

# Disable LSP tools (no code intelligence)
praison "Write a script" --no-lsp

# Disable both (basic tools only)
praison "Search the web" --no-acp --no-lsp

# TUI with disabled groups
praisonai tui launch --no-acp --no-lsp

Environment Variables

# Disable specific groups via env
export PRAISON_TOOLS_DISABLE=acp,lsp
praison "Hello world"

# Set workspace
export PRAISON_WORKSPACE=/path/to/project

Tool Details

ACP Tools (Agentic Change Plan)

ACP tools route file operations through a plan/approve/apply/verify flow:
User Request → Create Plan → Approve → Apply → Verify
ToolDescription
acp_create_fileCreate a new file with content
acp_edit_fileEdit an existing file
acp_delete_fileDelete a file (requires approval)
acp_execute_commandExecute a shell command
Safety Features:
  • 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:
ToolDescription
lsp_list_symbolsList functions, classes, methods in a file
lsp_find_definitionFind where a symbol is defined
lsp_find_referencesFind all references to a symbol
lsp_get_diagnosticsGet errors and warnings
Fallback Behavior:
  • If LSP server is unavailable, tools fall back to regex-based extraction
  • Results include lsp_used flag to indicate which method was used

Basic Tools

Standard file and search tools:
ToolDescription
read_fileRead file content
write_fileWrite content to file
list_filesList directory contents
execute_commandRun shell commands
internet_searchSearch the web

Python API

from praisonai.cli.features import (
    get_interactive_tools,
    ToolConfig,
    TOOL_GROUPS,
)

# Get all default tools
tools = get_interactive_tools()

# Get tools with specific config
config = ToolConfig(
    workspace="/path/to/project",
    enable_acp=True,
    enable_lsp=True,
    approval_mode="auto",  # or "manual"
)
tools = get_interactive_tools(config=config)

# Disable specific groups
tools = get_interactive_tools(disable=["acp"])

# Get only specific groups
tools = get_interactive_tools(groups=["basic"])

Configuration

ToolConfig Options

OptionDefaultDescription
workspaceos.getcwd()Working directory
enable_acpTrueEnable ACP tools
enable_lspTrueEnable LSP tools
enable_basicTrueEnable basic tools
approval_mode"auto"Approval mode: auto, manual, scoped

Environment Variables

VariableDescription
PRAISON_TOOLS_DISABLEComma-separated groups to disable
PRAISON_WORKSPACEOverride workspace path
PRAISON_APPROVAL_MODESet approval mode

Architecture

praison "prompt" / praisonai tui launch


┌─────────────────────────────────────────────────────────────┐
│  get_interactive_tools()                                    │
│  (Canonical source of truth)                               │
└─────────────────────────────────────────────────────────────┘

    ├── ACP Tools → ActionOrchestrator → Plan/Apply/Verify

    ├── LSP Tools → CodeIntelligenceRouter → LSP/Fallback

    └── Basic Tools → Direct execution