# Manage projects from the CLI

Use the `tessl project` commands to create, link, or repair the Tessl project for a repository.

If you're blocked when starting a codebase eval, this is usually the page you need.

Creating a Tessl project does not create a new Git repository. It creates the Tessl project for the repository you are already working in.

### When you are asked to create a project

Tessl asks for a project when it needs to identify the repository behind the current directory.

This happens most often when you run a codebase eval from a repository that is not linked yet.

### Which command should I use?

| Command                | Use it when                        | What it does                                  |
| ---------------------- | ---------------------------------- | --------------------------------------------- |
| `tessl project create` | This directory is not linked yet   | Creates a new project                         |
| `tessl project link`   | The project already exists         | Links this directory to that existing project |
| `tessl project repair` | The local link is missing or wrong | Inspects and fixes the link                   |

### `tessl project create`

Creates a new Tessl project for the current repository checkout.

Use this when the current repository is not linked yet and you want to create a new project in Tessl.

This command always creates a new project. It does not link to an existing one.

If the repository should use a project that already exists, use `tessl project link` instead.

### `tessl project link`

Links the current repository to an existing Tessl project.

Use this when the project already exists in Tessl and you want the repository to use it.

This command only links to an existing project. It does not create a new one.

If you want to create a brand new project for this repository, use `tessl project create` instead.

### `tessl project repair`

Inspects or repairs the Tessl project link for the current repository.

Use this when the repository should already be linked to a project, but the link is missing, broken, outdated, or no longer matches the expected repository.

Use `--relink` to connect the repository to a different existing project, `--update-source` to keep the linked project but approve this repository as its source, and `--update-name` to rename the linked project to match `tessl.json`.

### What happens after linking

Once a repository is linked:

* Codebase evals attach to that Tessl project
* The CLI and app can show one shared evaluation history


---

# 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.tessl.io/projects/manage-projects-from-the-cli.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.
