Metadata-Version: 2.4
Name: ai-personas
Version: 1.0.0
Summary: 1,000+ AI personas for LLMs and agents.
Author-email: KudoAI <contact@kudoai.com>
Maintainer-email: Adam Lui <adam@kudoai.com>
License-Expression: MIT
Project-URL: Changelog, https://github.com/KudoAI/ai-personas/releases/tag/ai-personas-python-1.0.0
Project-URL: Documentation, https://github.com/KudoAI/ai-personas/tree/main/python/#readme
Project-URL: Funding, https://github.com/sponsors/KudoAI
Project-URL: Homepage, https://github.com/KudoAI/ai-personas/#readme
Project-URL: Issues, https://github.com/KudoAI/ai-personas/issues
Project-URL: PyPI Stats, https://pepy.tech/projects/ai-personas
Project-URL: Releases, https://github.com/KudoAI/ai-personas/releases
Project-URL: Repository, https://github.com/KudoAI/ai-personas
Keywords: agents,ai,ai-personas,chat-prompts,chatgpt,claude,dataset,gemini,gen-ai,llm,llm-prompts,personas,prompt-engineering,prompts,system-prompts,text-generation
Classifier: Development Status :: 5 - Production/Stable
Classifier: Intended Audience :: Customer Service
Classifier: Intended Audience :: Developers
Classifier: Intended Audience :: Education
Classifier: Intended Audience :: End Users/Desktop
Classifier: Intended Audience :: Financial and Insurance Industry
Classifier: Intended Audience :: Healthcare Industry
Classifier: Intended Audience :: Information Technology
Classifier: Intended Audience :: Legal Industry
Classifier: Intended Audience :: Manufacturing
Classifier: Intended Audience :: Other Audience
Classifier: Intended Audience :: Religion
Classifier: Intended Audience :: Science/Research
Classifier: Intended Audience :: System Administrators
Classifier: Intended Audience :: Telecommunications Industry
Classifier: Natural Language :: English
Classifier: Operating System :: OS Independent
Classifier: Programming Language :: Python
Classifier: Programming Language :: Python :: 2
Classifier: Programming Language :: Python :: 2.6
Classifier: Programming Language :: Python :: 2.7
Classifier: Programming Language :: Python :: 3
Classifier: Programming Language :: Python :: 3.8
Classifier: Programming Language :: Python :: 3.9
Classifier: Programming Language :: Python :: 3.10
Classifier: Programming Language :: Python :: 3.11
Classifier: Programming Language :: Python :: 3.12
Classifier: Programming Language :: Python :: 3.13
Classifier: Programming Language :: Python :: 3.14
Classifier: Programming Language :: Python :: 3.15
Classifier: Topic :: Education
Classifier: Topic :: Education :: Computer Aided Instruction (CAI)
Classifier: Topic :: Scientific/Engineering
Classifier: Topic :: Scientific/Engineering :: Artificial Intelligence
Classifier: Topic :: Scientific/Engineering :: Information Analysis
Classifier: Topic :: Software Development
Classifier: Topic :: Software Development :: Libraries
Classifier: Topic :: Software Development :: Libraries :: Python Modules
Classifier: Topic :: Text Processing
Classifier: Topic :: Text Processing :: General
Classifier: Topic :: Text Processing :: Linguistic
Classifier: Topic :: Utilities
Requires-Python: <4,>=2.6
Description-Content-Type: text/markdown
License-File: docs/licenses/LICENSE-CODE.md
License-File: docs/licenses/LICENSE-DATA.md
Provides-Extra: dev
Requires-Dist: nox>=2026.2.9; extra == "dev"
Requires-Dist: tomli<3,>=2.4.0; extra == "dev"
Requires-Dist: tomli-w<2,>=1.2.0; extra == "dev"
Dynamic: license-file

# > ai-personas

> ### _1,000+ AI personas for LLMs and agents._

It's just a [JSON file](https://cdn.jsdelivr.net/gh/KudoAI/ai-personas@ai-personas-python-1.0.0/data/ai-personas.json), so you can use it in any environment.

## Installation

```bash
pip install ai-personas
```

## Usage

```py
import ai_personas

print(ai_personas['Linux Terminal']['prompt'])
# => I want you to act as a linux terminal. I will type commands and you will...
```

_Note: Most type checkers will falsely warn_ `ai_personas` _is not subscriptable because they are incapable of analyzing runtime behavior (where the module is replaced w/ a dictionary for cleaner, direct access). You can safely suppress such warnings using_ `# type: ignore`.

## Examples

Search by keyword:

```py
keyword = 'coach'

for persona, data in ai_personas.items():
    if keyword.lower() in data['prompt'].lower():
        print(persona)
# =>
# ...
# Interview Preparation Coach
# Life Coach
# Master Skills & Experience Summary Generator
# Motivational Coach
# Multilingual Writing Improvement Assistant
# Pre-Interview Intelligence Dossier
# ...
```

Get 6 random personas:

```py
import random

for persona in random.sample(list(ai_personas), 6):
    print(persona)

# e.g. =>
# Internet Trend & Slang Intelligence
# Tic-Tac-Toe Game
# Reverse Prompt Engineer
# Study planner
# Develop a Media Center Plan for Hajj
# China Business Law Assistant
```

Get random prompt:

```py
import random

rand_persona = random.choice(list(ai_personas.values()))
print(rand_persona['prompt'])

# e.g. =>
#
# Act as a Node.js Automation Script Developer. You are an expert in creating 
# automated scripts using Node.js to streamline tasks such as file 
# manipulation, web scraping, and API interactions.
#
# Your task is to:
# - Write efficient Node.js scripts to automate ${taskType}.
# - Ensure the scripts are robust and handle errors gracefully.
# - Use modern JavaScript syntax and best practices.
#
# Rules:
# - Scripts should be modular and reusable.
# - Include comments for clarity and maintainability.
#
# Example tasks:
# - Automate file backups to a cloud service.
# - Scrape data from a specified website and store it in JSON format.
# - Create a RESTful API client for interacting with online services.
#
# Variables:
# - ${taskType} - The type of task to automate (e.g., file handling, web 
# scraping).
```

Fill variables in template prompts :

```py
prompt = ai_personas['Node.js Automation Script Developer']['prompt']
filled_prompt = prompt.replace('${taskType}', 'web scraping')

print(filled_prompt)

# =>
# ...
# Your task is to:
# - Write efficient Node.js scripts to automate web scraping.
# ...
```

Combine prompts:

```py
import ai_personas

mega_prompt = f'''
When I start w/ sh: follow prompt A. When I start w/ dax: follow prompt B.

Prompt A: {ai_personas['Linux Terminal']['prompt']}

Prompt B: {ai_personas['DAX Terminal']['prompt']}
'''

print(mega_prompt)

# =>
#
# When I start w/ sh: follow prompt A. When I start w/ dax: follow prompt B.
#
# Prompt A: I want you to act as a linux terminal...
#
# Prompt B: I want you to act as a DAX terminal...
```

Build system prompt:

```py
system_prompt = ai_personas['Study Planner']['prompt']

messages = [
    {'role': 'system', 'content': system_prompt},
    {'role': 'user', 'content': '<your_query>'}
]
```

## MIT License

Copyright © 2026 [KudoAI](https://www.kudoai.com) & contributors

#

 **More Python utilities** (https://github.com/KudoAI/ai-personas/#readme) /
Back to top ↑
