Skip to main content
Drop Markdown or YAML files into .praisonai/agents/ and .praisonai/commands/ to extend the CLI without writing Python.

Quick Start

1

Create an agent file

<!-- .praisonai/agents/researcher.md -->
---
model: gpt-4o
role: Research Specialist
tools:
  - web_search
---

You are an expert researcher. Provide concise, cited answers.
2

Run the agent

praisonai run --agent researcher "What's new in WebAssembly 3.0?"
3

Create a command file

<!-- .praisonai/commands/summarise.md -->
---
description: Summarise text
---

Summarise the following in three bullet points:

$ARGUMENTS
4

Run the command

praisonai run --command summarise "Long article text here..."

How discovery works

LocationScope
~/.praisonai/agents/ / commands/User-global
./.praisonai/agents/ / commands/Project (walks up to git root)
Project definitions override user definitions on name collision.

Agent definitions

Files: .praisonai/agents/*.md or *.yaml
FieldDescription
modelLLM model
toolsTool list
roleAgent role
goalAgent goal
instructionsSystem instructions
Markdown bodyBecomes system_prompt when no instructions field

Command templates

Files: .praisonai/commands/*.md
PatternBehaviour
$ARGUMENTSReplaced with user input
@path/to/fileInlines file contents
$(shell cmd)Escaped — not executed (safety)

Agent vs command vs skill vs rule

Slash commands

Custom commands auto-register in interactive mode as CommandKind.CUSTOM. Disable with SlashCommandHandler(discover_custom=False).

Python API

from praisonai.cli.features.custom_definitions import (
    load_agent_from_name,
    interpolate_command_template,
)

config = load_agent_from_name("researcher")
prompt = interpolate_command_template("summarise", "Long text...")

Best practices

Commit .praisonai/agents/ and .praisonai/commands/ to git.
Use ~/.praisonai/ for personal shortcuts that should not override team agents.
$(...) is escaped deliberately — use @file for file content instead.

Run CLI

—agent and —command flags

Agent CLI

List and inspect custom agents

Command CLI

List and preview commands

Slash Commands

Interactive custom commands