# Installed software

The Ubuntu workspace comes with editors, AI agents, runtimes, Docker, and Git, so you can work without installing anything yourself.

> Source: https://www.application-platform.com/en/docs/workspace-ubuntu-software/

The Ubuntu workspace is prepared for day-to-day work on platform projects. You get a desktop environment for editor, browser, and graphical tools, which you reach via [RDP]({{< relref "workspace-rdp" >}}) or, where offered, via [VNC]({{< relref "workspace-vnc" >}}). The exact versions of the tools depend on the project, because asdf reads them from the `.tool-versions` of the respective repository.

## Editors and AI agents

Cursor and Code Server are available for editing code. Cursor runs as a desktop program on the RDP desktop, while Code Server provides VS Code in the browser and is what sits behind the **Apps** button on the workspace card. Codex and Claude Code are installed for agentic work in the terminal. They work on the same repositories as your editor and read their rules from your project's `local-configuration` repository, meaning AGENTS.md, CLAUDE.md, and the folders for the individual editors. How you use the tools in a project is described under [Cursor, VS Code and Antigravity]({{< relref "vscode-cursor-antigravity" >}}), [Claude Code]({{< relref "claude-code" >}}), and [Codex]({{< relref "codex" >}}).

## Runtimes through asdf

asdf installs Node.js with npm, Flutter, and other runtimes in the version that the repository requests in its `.tool-versions`. This is why a backend can use a different Node version than the homepage without the two interfering. When you change into a repository folder in the terminal, the matching version applies there automatically, and `asdf current` shows it. The Flutter toolchain is only present if a project requires it. How asdf and the env files work together is described under [Local development]({{< relref "local-development" >}}).

## Docker

Docker and Docker Compose are installed so that backends can start their local services. In a backend repository, `ap run-local` brings up the database and other services from the Compose configuration before the development server starts. You do not need to operate Docker yourself for this. If a port is in use or old containers are still running, the notes under [Troubleshooting]({{< relref "workspace-vm-troubleshooting" >}}) help.

## Git and the ap CLI

Git is set up, and the repositories of your project are already cloned; you work with branches, commits, and push as on a local computer. The `ap` CLI is preinstalled. You use it to start applications, check the tools with `ap doctor`, and see the local ports of the repositories with `ap ports`. What else the CLI can do is described under [Starting applications]({{< relref "workspace-ubuntu-dev-scripts" >}}).

