> For the complete documentation index, see [llms.txt](https://docs.tessl.io/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://docs.tessl.io/projects/manage-projects-from-the-cli.md).

# 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 an 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 an 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 and records the link in `tessl.json` (creating it if missing) |
| `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 and records the project link in `tessl.json`.

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

If no `tessl.json` is found in this directory or any parent directory, the command creates one before proceeding. Once the project is created, the manifest is updated to link this repository to the new project. You do not need to run `tessl init` first.

If a `tessl.json` already exists in a parent directory (but not in the current directory), the command stops and asks you to pass `--nested`. Run it again with `--nested` to create a new `tessl.json` in the current directory and a separate project for it, rather than reusing the parent project.

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:

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


---

# Agent Instructions
This documentation is published with GitBook. GitBook is the documentation platform designed so that both humans and AI agents can read, navigate, and reason over technical content effectively. Learn more at gitbook.com.

## 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, and the optional `goal` query parameter:

```
GET https://docs.tessl.io/projects/manage-projects-from-the-cli.md?ask=<question>&goal=<endgoal>
```

`ask` is the immediate question: it should be specific, self-contained, and written in natural language.
`goal` is optional and describes the broader end goal you are ultimately trying to accomplish on behalf of the user. GitBook uses it to tailor the answer towards what is most useful for that goal.

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.
