# Workspaces

Workspaces within Tessl make managing it easy to create, share and manage your team's context.

## Setting up a new workspace

### create

To create a workspace, run `tessl workspace create <name>`

```
tessl workspace create engteam

> ✔ Created workspace engteam (019b324b-...)
```

### list

Verify that your workspace has been created using `tessl workspace list`.

```
tessl workspace list

> ╔════════════╤══════════════════════════════════════╗
  ║ Name       │ ID                                   ║
  ╟────────────┼──────────────────────────────────────╢
  ║ engteam    │ 019952d9-...                         ║
  ╚════════════╧══════════════════════════════════════╝
```

## How workspaces appear in the Registry

When you publish tiles to a workspace, they appear in the Tessl Registry with URLs that follow this pattern:

```
https://tessl.io/registry/<workspace>/<tilename>/<version>
```

**Example:** If you publish a tile with:

* Workspace name: `engteam`
* Tile name: `api-patterns`
* Version: `1.0.0`

Your tile will be available at:

```
https://tessl.io/registry/engteam/api-patterns/1.0.0
```

{% hint style="info" %}
The workspace name and tile name are determined by the `"name"` field in your `tile.json` file:

* `"name": "engteam/api-patterns"` where `engteam` is the workspace and `api-patterns` is the tile name
* This is independent of your GitHub repository organization or name
  {% endhint %}

The version in the URL is optional - if omitted, the latest version will be displayed.

## Configuring workspace users

### add-member

Add a new member to a workspace using:

`tessl workspace add-member --workspace <workspace-name> --username <username> --role <role>`

```
tessl workspace add-member --workspace engteam --username macebake --role publisher
```

Check out our supported [roles](https://docs.tessl.io/reference/roles) to see which are appropriate for your users.

### list-members

Verify that your users were added correctly using `tessl workspace list-members <workspace-name>`

```
tessl workspace list-members engteam
```

### remove-members

Remove members using `tessl workspace remove-member --workspace <workspace-name> --username <username>`

```
tessl workspace remove-member --workspace engteam --username macebake
```

## Managing your workspace

### archive

Archive a workspace using `tessl workspace archive --reason <text> [workspace-name]`. The `--reason` flag is required. An archived workspace won't be available to publish to or read from, but can be unarchived later.

```
tessl workspace archive --reason "deprecated" engteam
```

### unarchive

To unarchive an archived workspace, making it active again, use `tessl workspace unarchive <workspace-name>`.

```
tessl workspace unarchive engteam
```

### delete

Delete a workspace entirely using `tessl workspace delete <workspace-name>`. Note: this will delete all content in a workspace, and cannot be undone! Use `archive` above as a safer alternative.

```
tessl workspace delete engteam
```


---

# 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/reference/workspaces.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.
