# Developing with Pushkin

Pushkin is 100% open-source. We love it when people come together to help fix bugs, build features, and make Pushkin better for everyone. If you’d like to contribute, feel free to open a pull request. The Pushkin project is split into several repos, each corresponding to a Yarn/NPM module. Issues and general project direction is tracked via GitHub’s project boards and issues. The discussion board can be found in the [pushkin repo](https://github.com/pushkin-consortium/pushkin) which contains the documentation.

1. [CLI](https://github.com/pushkin-consortium/pushkin-cli) ([Docs](/pushkin/advanced/pushkin-cli.md)) Installable via Yarn. Adds a `pushkin` command to the path when installed globally and makes working with Pushkin much easier.
2. [Client](https://github.com/pushkin-consortium/pushkin-client) ([Docs](/pushkin/advanced/pushkin-client.md)) A module that provides simplified methods for making calls to a Pushkin API and unpacking data sent back from a worker. Note that built-in functions assume the API has corresponding default routes enabled to handle such requests.
3. [API](https://github.com/pushkin-consortium/pushkin-api) ([Docs](/pushkin/advanced/pushkin-api.md)) Essentially a mini-server designed with the use case of interfacing between Pushkin Client and Pushkin Worker via RabbitMQ.
4. [Worker](https://github.com/pushkin-consortium/pushkin-worker/) ([Docs](/pushkin/advanced/experiment-structure/worker-component-migration-and-seed.md#experiment-worker-component)) Receives messages from RabbitMQ and runs whatever functionality it’s told to run, sending the result back through the queue it came from. Designed to be on the receiving end of a Pushkin API. Comes with built-in simple functions that most users will probably want, like “getAllStimuli”.


---

# Agent Instructions: 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://languagelearninglab.gitbook.io/pushkin/developers/developing-with-pushkin.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.
