EP Logo

👋 Welcome!

We've designed this page to help you get started with our suite of tools.

  • EDSL (Expected Parrot Domain-Specific Language) is an open-source Python library for conducting AI-powered research. EDSL simplifies the creation and execution of surveys, experiments, data labeling tasks and other research activities involving large numbers of AI agents and language models. Its primary goal is to facilitate complex AI-based research tasks with ease and efficiency.

  • Tip

    Please see the EDSL Docs for an overview, templates, tutorials and in-depth documentation for the EDSL library.

  • Coop (as in birdcoop, but also cooperative) is our web application for storing and sharing your work, exploring other AI-powered research, and accessing your Expected Parrot API keys. Coop is still in development. Let us know if you're interested in trying it out!


Need help? Have a feature request? Want to talk to others with a passion for AI-powered research? Join the Expected Parrot community!

Installing EDSL

EDSL is an open-source Python library for simulating surveys and experiments with AI agents and large language models.

This page provides instructions for installing the library on your system.

Requirements: EDSL is compatible with Python 3.6 and above.


View this page in the EDSL Docs where you can also find troubleshooting tips, starter tutorials and in-depth documentation for the EDSL library.

Quickstart Installation

Open your terminal and verify that you have not previously installed EDSL on your system:

pip show edsl

To install the latest version of EDSL through pip:

pip install edsl

To update to the latest version of EDSL:

pip install --upgrade edsl

Advanced Installation

The Quickstart Installation steps will install EDSL globally on your system. Sometimes, you may face problems with conflicts between EDSL and other libraries. To avoid such problems, we recommend that you use a virtual environment.

Open your terminal and run the following command:

python3 -m venv myenv

This will create a folder called myenv. Next, activate your virtual environment:

source myenv/bin/activate

You can now install EDSL through pip within your virtual environment:

pip install edsl

You will have access to EDSL while your virtual environment is activated.

You can deactivate the virtual environment at any time by running:


To delete the virtual environment, simply delete the myenv folder.

API Keys

API keys are required to access the services of large language models (LLMs) such as OpenAI’s GPTs, Google’s Gemini, Anthropic’s Claude, Llama 2 and others.

There are two methods for securely providing your API keys to EDSL:

1. Using a .env file (recommended)

Create a .env file in your working directory and populate it with your API keys. Replace your_key_here with your actual API key for each service that you plan to use:


Using a .env allows you to store your keys once and avoid repeatedly enter your API keys each time you start a session with EDSL.

2. Setting API keys in your Python code

Alternatively, you can directly set your API keys in your Python script before importing any EDSL objects. This method stores the keys in your system's memory only for the duration of the session:

import os os.environ['ANTHROPIC_API_KEY'] = 'your_key_here'
os.environ['DEEP_INFRA_API_KEY'] = 'your_key_here'
os.environ['GOOGLE_API_KEY'] = 'your_key_here'
os.environ['OPENAI_API_KEY'] = 'your_key_here'

Remember, if you restart your session, you will need to re-enter your API keys.


Treat your API keys as sensitive information, akin to passwords. Never share them publicly or upload files containing your API keys to public repositories.

Troubleshooting tips

See the EDSL Docs for troubleshooting tips, installation instructions, starter tutorials and in-depth documentation for the components of the EDSL library.

Coop: Create an account

We are currently working on this page!

Coop: How it works

We are currently working on this page!

Coop: Hosted simulations

We are currently working on this page!

XDSL: How it works

XDSL lets you automatically generate surveys and simulate responses for key audiences - no coding required.

How it works:

  • Open the XDSL app (see instructions) and enter a research topic. In a few words, describe an ideal audience for your survey.
  • This information is used to generate a survey of questions about your topic, and personas for AI agents that will simulate responses to it.

  • Review the suggested survey questions and edit however you want.
  • Finalize questions by selecting question types and answer options (for multiple choice and other types). Access built-in features for cognitive testing to suggest improvements and appropriate answer options.

  • Generate personas for AI agents that will simulate responses to the survey.
  • See an example persona with lists of relevant dimensions. Edit the dimensions however you want, and then select the number of agents that you want to generate.

  • Run the survey and inspect the results.
  • Easily post your content to the Coop or export it to files or other platforms.

1. Describe your research

Enter a research topic and short description of your ideal respondents:

2. Review auto-generated questions

Review auto-generated survey questions and select answer options, with tools for cognitive testing:

3. Select AI agents

Select relevant personas for AI agents that will respond to your survey:

4. Inspect and export results

Evaluate responses and share your survey:

5. Share your work

Publish surveys, agents and results in the Coop!