> ## Documentation Index
> Fetch the complete documentation index at: https://docs.dureai.dev/llms.txt
> Use this file to discover all available pages before exploring further.

# Your first agent

> Start a coding agent from the terminal you already use, then choose when it needs managed-session guarantees.

## Requirements

* A Mac with Apple silicon
* At least one supported coding-agent CLI installed and logged in
* A Git repository for worktree-backed agents

Install the app first if needed: [Install Dure](/en/install).

<Warning>
  Dure is alpha software. The current public build is unsigned and the published
  artifact still carries the legacy `Hebbian` app identity while the product
  transitions to the Dure name.
</Warning>

## First launch: start from recent work

Dure can discover recent provider-native conversations on this Mac and on
eligible SSH hosts, then draft repository-based desktops and pane layouts.
Review the read-only proposal, rename or merge desktops, move panes, and confirm
only when the workspace looks right.

<video autoPlay controls loop muted playsInline title="Dure onboarding from recent local and SSH coding-agent sessions" className="w-full aspect-video rounded-xl" poster="/images/onboarding-walkthrough.png" src="https://mintcdn.com/hebbian/gBhXllKfo-gr_XE_/videos/onboarding-walkthrough.webm?fit=max&auto=format&n=gBhXllKfo-gr_XE_&q=85&s=ce727f944da53a954302b32161ff2e56" data-path="videos/onboarding-walkthrough.webm">
  Your browser does not support embedded video.
  <a href="/videos/onboarding-walkthrough.webm">Open the onboarding walkthrough.</a>
</video>

## 1. Download and install

Download the latest disk image from the
[public release feed](https://github.com/hebbianai/hebbian-releases/releases/latest),
move the app to `/Applications`, then clear the quarantine attribute once:

```sh theme={"system"}
xattr -dr com.apple.quarantine /Applications/Hebbian.app
```

The legacy installed path is retained for updater and local-state compatibility.
Do not rename the app bundle manually.

## 2. Prepare an agent CLI

Install and authenticate the provider CLI outside Dure first. For example,
confirm that `claude`, `codex`, or another supported command starts correctly
from your login shell.

Dure detects installed providers from the same login-shell environment. It does
not install provider CLIs or purchase their subscriptions.

## 3. Add a project

Open Dure and add the local folder containing your Git repository. The project
appears in Spaces and becomes the scope for new agent panes.

## 4. Start from the terminal as usual

Open an ordinary terminal pane in the project and run `claude`, `codex`, or
another supported provider command as you normally would. Dure inspects the
live process tree and terminal evidence, recognizes the provider and its
activity, and shows it in Spaces. You do not need to add or register the agent
first.

## 5. Opt into a managed agent when needed

When you need worktree isolation and session-survival guarantees, use the
add-agent action, select a provider, give the agent a distinct name, and keep
worktree isolation enabled. For reviewed providers and states, you can also use
the managed-conversion action shown on an already recognized terminal pane.
Dure creates or reuses:

```text theme={"system"}
repo/.worktrees/<agent-name>
agent/<agent-name>
```

The managed pane starts in that worktree. Other agents can work in parallel
without sharing its index or working files.

## 6. Verify the session contract

Send a prompt, wait for output, then close and reopen Dure. A managed local agent
should reattach to the same live session and screen instead of starting a new
provider process.

<Tip>
  Automatic recognition alone does not guarantee worktree isolation or managed
  session survival. Convert the session or start it in an agent pane when the
  work must survive.
</Tip>

## Next

* [How sessions, snapshots, and recovery differ](/en/session-model)
* [Coordinate multiple agents](/en/orchestration)
* [Provider support and capability levels](/en/providers)
* [Persistence and platform limits](/en/current-limits)
