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

# Core Concepts

> Short definitions for the core file system model: repositories, mounts, workspaces, snapshots, and promotion.

These are the terms used across the versioned file system docs.

## Repository

A **repository** is the durable Git source of truth behind every Tensorlake file system. Mounts, workspaces, snapshots, and promotion all operate on top of repository branches, commits, and refs.

The [Git Repositories](/filesystems/git-repositories) guide shows how to work with that same backing repository through ordinary `git clone`, `git push`, and `git fetch`.

## Mount

A **mount** gives a sandbox a directory backed by a repository branch, commit, or workspace.

```bash theme={null}
tl fs mount agent-outputs:main /work
```

The mount path is ephemeral. Processes read and write `/work` like any other directory while the sandbox is running.

## Workspace

A **workspace** is the isolated snapshot history behind a writable mount.

When you mount `agent-outputs:main` read-write, Tensorlake creates a workspace starting from the current `main` commit. Creating a workspace does not copy the repository. Tensorlake records the base commit and tracks snapshots from there.

If a sandbox crashes, you can remount the workspace on another machine and continue from its latest snapshot.

## Snapshot

A **snapshot** persists the current contents of a writable mount as a commit on the workspace.

```bash theme={null}
tl fs snapshot /work -m "implemented parser"
```

Snapshots are private checkpoints. The source branch does not change until you promote.

## Promote

**Promote** publishes a workspace snapshot to a branch.

```bash theme={null}
tl fs promote /work main -m "implemented parser"
```

By default, promotion publishes one clean commit to the target branch. Future agents that mount that branch, and Git users who clone or fetch it, get that version. Following read-only mounts pick up the update automatically, and activity history shows who published it and which workspace it came from.

## Mount Modes

Mount modes answer two questions:

* Can this mount write?
* Does it stay fixed, or follow a branch as it moves?

Most write workflows start with a writable mount:

```bash theme={null}
tl fs mount agent-outputs:main /work
```

Tensorlake creates the workspace behind that mount and keeps it until you delete it.

Use [File System Mounts](/filesystems/filesystem-mounts) to choose a different mode.

## Credentials

Tensorlake file systems use two credentials.

`tl login` stores a Tensorlake CLI credential. The CLI uses it to ask Tensorlake for short-lived Git credentials.

A Git credential authorizes access to the backing repository service. It is scoped to a project and usually one repository, carries scopes like `git:read` and `git:write`, and is sent as the HTTP Basic password for `git`, SDK calls, and `tl fs` mounts.

Most commands mint and refresh Git credentials automatically. You only handle one yourself when using plain Git, CI, or another HTTP client. See [Authentication](/filesystems/authentication).
