Privacy & Data Handling

What happens to your prompts, code, and data when you run PraisonAI agents

PraisonAI runs on your machine and sends your prompts and data only to the LLM provider and tools you configure — the project itself never receives them.

Diagram

opt-in only
anonymous counts

Your Code & Prompts

PraisonAI Agent
runs locally

Your Chosen LLM Provider

Tools You Enable

Telemetry

Quick Start

  1. Keep data on your machine

    Point the agent at a local model — nothing leaves your network.

    python
    from praisonaiagents import Agent
    
    agent = Agent(
        instructions="Review this proprietary code.",
        llm="ollama/llama3.2",  # runs locally
    )
    agent.start("Explain what this function does: ...")
  2. Guarantee telemetry is off

    Telemetry is already off by default. Set this to make the opt-out explicit and override any programmatic enable:

    bash
    export DO_NOT_TRACK=true

Where Your Data Goes

DataWhere it goesWho controls it
Prompts, instructions, responsesThe LLM provider set in llm=You — read that provider’s data policy
Files, code, tool argumentsOnly the tools you give the agentYou
Memory, sessions, knowledgeLocal storage or the database you configureYou
Anonymous usage countsPostHog (EU), only if you opt inYou

PraisonAI is a pass-through library: it does not proxy, store, or inspect your content on any PraisonAI-operated server. The data policy that applies to your prompts is the policy of the LLM provider you choose.

Diagram

No

Yes, with a vetted vendor

Can proprietary data
leave your network?

Use a local model
Ollama, LM Studio, vLLM

Use a provider whose
data policy you accept


Telemetry

Telemetry is disabled by default. It only runs if you set PRAISONAI_TELEMETRY_ENABLED=true (or PRAISONAI_PERFORMANCE_ENABLED=true) or call enable_telemetry().

What is sent when enabled
  • Event counts: agent runs, task completions, tool calls, errors, feature usage
  • Tool names and execution times (no arguments), error types (no messages), success flags
  • SDK version, Python version, OS type
  • A random session ID regenerated each run

GeoIP lookup is disabled.

What is never sent
  • Prompts, instructions, or LLM responses
  • Source code, files, or tool arguments and results
  • API keys or credentials
  • Personal data
How to force it off

Any of these wins over every enable setting:

bash
export DO_NOT_TRACK=true
export PRAISONAI_TELEMETRY_DISABLED=true
export PRAISONAI_DISABLE_TELEMETRY=true

See Telemetry for details.


Best Practices

Review your LLM provider's data policy

Your prompts go straight to the provider. Check its retention and training-use terms, or use an enterprise/zero-retention plan.

Use a local model for sensitive code

Set llm= to an Ollama or other self-hosted model so content never leaves your infrastructure.

Only give agents the tools they need

Web search, MCP servers, and API tools send their arguments to third parties. Leave them off for confidential work.

Set DO_NOT_TRACK in CI and shared environments

It guarantees no telemetry even if a library or script calls enable_telemetry().


Related