> ## Documentation Index
> Fetch the complete documentation index at: https://praison.ai/docs/llms.txt
> Use this file to discover all available pages before exploring further.

# planning • Rust AI Agent SDK

> Planning Module for PraisonAI Rust SDK.

# planning

<Badge color="orange">Rust AI Agent SDK</Badge>

Planning Module for PraisonAI Rust SDK.

Provides Planning Mode functionality similar to:

* Cursor Plan Mode
* Windsurf Planning Mode
* Claude Code Plan Mode

# Example

```ignore theme={"theme":{"light":"vitesse-light","dark":"vitesse-dark"}}
use praisonai::planning::{Plan, PlanStep, TodoList, PlanStorage};

let mut plan = Plan::new("Implement feature X");
plan.add_step(PlanStep::new("Research requirements"));
plan.add_step(PlanStep::new("Write tests"));
plan.add_step(PlanStep::new("Implement code"));
```

## Import

```rust theme={"theme":{"light":"vitesse-light","dark":"vitesse-dark"}}
use praisonai::planning::*;
```

## Classes

<CardGroup cols={2}>
  <Card title="PlanStep" icon="brackets-curly" href="../classes/PlanStep">
    A single step in a plan.
  </Card>

  <Card title="Plan" icon="brackets-curly" href="../classes/Plan">
    A plan consisting of multiple steps.
  </Card>

  <Card title="TodoItem" icon="brackets-curly" href="../classes/TodoItem">
    A todo item.
  </Card>

  <Card title="TodoList" icon="brackets-curly" href="../classes/TodoList">
    A todo list.
  </Card>

  <Card title="PlanStorage" icon="brackets-curly" href="../classes/PlanStorage">
    Storage for plans.
  </Card>

  <Card title="StepStatus" icon="brackets-curly" href="../classes/StepStatus">
    Status of a plan step.
  </Card>

  <Card title="TodoPriority" icon="brackets-curly" href="../classes/TodoPriority">
    Priority of a todo item.
  </Card>
</CardGroup>

## Functions

<CardGroup cols={2}>
  <Card title="is_read_only_tool()" icon="function" href="../functions/is_read_only_tool">
    Check if a tool is read-only.
  </Card>

  <Card title="is_restricted_tool()" icon="function" href="../functions/is_restricted_tool">
    Check if a tool is restricted.
  </Card>

  <Card title="is_research_tool()" icon="function" href="../functions/is_research_tool">
    Check if a tool is a research tool.
  </Card>
</CardGroup>

***

## Related Documentation

<CardGroup cols={2}>
  <Card title="Rust Planning" icon="map" href="/docs/rust/planning" />

  <Card title="Rust Reasoning" icon="brain" href="/docs/rust/reasoning" />
</CardGroup>
