# Userspace

Gall is one of the nine vanes (kernel modules) of Arvo, Urbit's operating system. Gall's purpose is to manage userspace applications called *agents*. **Agents** are the main kind of userspace application on Urbit. They have a persistent state and API that handles events and produces effects.Gall agents can variously be treated as databases with developer-defined logic, services, daemons, or a kind of state machine.

One or more Gall agents can be put together in a "desk" in Clay (the filesystem vane) and, along with a front-end, can be published and distributed as a cohesive app for users to install.

This section of the docs contains guides related to writing apps and [distributing them](/build-on-urbit/userspace/dist/software-distribution.md). It also contains a number of different [examples and exercises](/build-on-urbit/userspace/examples.md) you can work through to learn how to build different kinds of apps.

Additionally, the [courses](/build-on-urbit/contents.md) section of the docs contain two in-depth app-building tutorials, which are the recommended place to start learning Urbit app development:

* [App School](/build-on-urbit/app-school.md) - Learn the basics of app development.
* [App School II](/build-on-urbit/app-school-full-stack.md) - Learn to build and publish a full app, back-end and front-end.


---

# 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://docs.urbit.org/build-on-urbit/userspace.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.
