Projects

A project groups related tasks and scopes an agent to a codebase or initiative. It gives that body of work a name, an optional description and goals, a working directory on disk, and its own layer of memory and skills — so every task you run inside it starts with the right context.

Projects are optional. Any task can run without one, but attaching a task to a project gives the agent a consistent working directory, injects the project's goals into its context, and layers project-scoped memory and skills on top of your user-scoped ones.

What a project is

A project bundles three things around a group of tasks: a working directory, a set of goals, and project-scoped memory and skills.

  • Working directory (project_path). A task's project path is its working directory — file reads, writes, and edits happen there. Attaching a task to a project points the agent's file operations at that folder.
  • Goals. A project's goals are injected into the agent's context for every task in the project, so the agent keeps the bigger objective in view.
  • Project memory. Facts and learnings written under .aura/memory/ in the project folder layer automatically on top of your user-scoped memory (~/.aura/memory/) for any task in that project.
  • Project skills. Skills placed under .aura/skills/ in the project folder are discovered first — ahead of user-scoped and bundled skills — so a project can carry its own capability packs.

In short: a project is the unit that keeps a stream of related tasks pointed at the same files, the same objective, and the same accumulated knowledge.

Creating a project

Click the + button next to the Projects header in the left sidebar. A dialog appears where you give the project a name and optionally select a directory path on disk. Setting the directory is what enables project-scoped memory and the discovery of a project's own .aura/ memory and skills.

You can also give a project a description and goals; the goals are the text that gets injected into the agent's context for tasks in the project, so keep them concrete (for example, "ship the v2 API with tests green and zero type errors").

How tasks attach to projects

There are two ways to associate a task with a project:

  • Pick it in the composer. Before you run a new task, select a project from the project selector in the task composer. The task then uses that project's working directory, goals, memory, and skills. (Mode, model, thinking level, and role pickers sit alongside it — see Workspace & Tasks.)
  • Drag and drop. Drag any task from the task list onto a project name in the sidebar to associate it after the fact.

Each project in the sidebar shows a badge with its task count, updated in real time as tasks are created, completed, or deleted. From the API, set project_path on the task payload to scope a run to a project's directory.

curl -X POST https://aura.example.com/api/tasks \
  -H "Authorization: Bearer $TOKEN" \
  -H "Content-Type: application/json" \
  -d '{
    "title": "Build a dashboard",
    "description": "Build a KPI dashboard for the marketing team",
    "task_mode": "plan",
    "project_path": "/path/to/project",
    "auto_run": true
  }'

Managing projects

  • Rename. Click the pencil icon next to a project name to rename it.
  • Delete. Use the context menu to delete a project. Deleting a project does not delete its tasks — they simply become unassociated.
  • Multi-select and bulk actions. Hold Cmd (macOS) or Ctrl and click to select multiple tasks. A bulk action bar lets you move the selected tasks to a project, delete them, or resume interrupted tasks in batch.

Next, learn how tasks actually run inside a project in Workspace & Tasks, or see how project memory accumulates in Memory & Knowledge.