> For the complete documentation index, see [llms.txt](https://bot-docs.yopro.studio/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://bot-docs.yopro.studio/getting-started/installation.md).

# Installation

## Prerequisites

<table><thead><tr><th width="155.333251953125">Requirement</th><th>Version</th></tr></thead><tbody><tr><td>Python</td><td>3.7+</td></tr><tr><td>pip or uv</td><td>latest (hopefully)</td></tr></tbody></table>

## Virtual Environment (optional)

I prefer using [uv](https://docs.astral.sh/uv/) but you do you, you can use normal python or [Poetry](https://python-poetry.org/) but I have no experience with it.

{% code overflow="wrap" expandable="true" %}

```bash
python -m venv venv # second "venv" is the folder"
```

{% endcode %}

or

{% code overflow="wrap" expandable="true" %}

```bash
uv venv venv # same here
```

{% endcode %}

Virtual Environments keep it easy so libraries stay where they need to be.

To enter the virtual enviroment, in the terminal enter:

{% code overflow="wrap" expandable="true" %}

```bash
source venv/bin/activate # Unix (Linux/MacOS)
venv\Scripts\activate # Microsoft Windows
```

{% endcode %}

## Installing Dependencies

The 5 required packages are listed inside `requirements.txt`. Install them with either tool:

{% code overflow="wrap" expandable="true" %}

```bash
pip install -r requirements

uv pip install -r requirements.txt # uv version
```

{% endcode %}

### Dependency Reference

<table><thead><tr><th width="146.6666259765625">Package</th><th>Role</th></tr></thead><tbody><tr><td><code>asyncio</code></td><td>Provides the async event loop; <code>asyncio.run(main())</code> is the program entry point</td></tr><tr><td><code>requests</code></td><td>HTTP client used to call the GitHub API and download updated source files</td></tr><tr><td><code>python-dotenv</code></td><td>Loads <code>.env</code> into environment variables via <code>load_dotenv()</code> / <code>load_config()</code></td></tr><tr><td><code>tweety-ns</code></td><td>Twitter scraping client; exposes <code>TwitterAsync</code> used in <code>init_twitter_app()</code> and <code>app.get_tweets()</code></td></tr><tr><td><code>atproto</code></td><td>Bluesky AT Protocol client; exposes <code>atproto.Client</code>, used in <code>init_bluesky_client()</code> and <code>bluesky_client.send_post()</code> / <code>repo.upload_blob()</code></td></tr></tbody></table>

## Notes

* **AWS hosting**: The `tweety-ns` scraper will be blocked by Twitter when running from an AWS IP range unless a proxy is configured
  * May apply to other Cloud Hosting Providers
* RapidAPI key: The `requests` package (used by the translation subsystem) requires a RapidAPI key only if translation is enabled. The key itself is optional at installation time; it is collected during setup. See [Translation Feature](/misc./translation-feature.md).

<br>


---

# Agent Instructions
This documentation is published with GitBook. GitBook is the documentation platform designed so that both humans and AI agents can read, navigate, and reason over technical content effectively. Learn more at gitbook.com.

## Querying This Documentation
If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://bot-docs.yopro.studio/getting-started/installation.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
