# `OpenCode.Generated.Workspace`
[🔗](https://github.com/UtkarshUsername/opencode-sdk-elixir/blob/v0.1.84/lib/opencode/generated/workspace.ex#L1)

Provides API endpoints related to workspace

# `experimental_workspace_adapter_list_200_json_resp`

```elixir
@type experimental_workspace_adapter_list_200_json_resp() :: %{
  description: String.t(),
  name: String.t(),
  type: String.t()
}
```

# `experimental_workspace_status_200_json_resp`

```elixir
@type experimental_workspace_status_200_json_resp() :: %{
  status: String.t(),
  workspace_id: String.t()
}
```

# `t`

```elixir
@type t() :: %OpenCode.Generated.Workspace{
  branch: String.t() | nil,
  directory: String.t() | nil,
  extra: map() | nil,
  id: String.t(),
  name: String.t(),
  project_id: String.t(),
  time_used: number() | String.t(),
  type: String.t()
}
```

# `experimental_workspace_adapter_list`

```elixir
@spec experimental_workspace_adapter_list(opts :: keyword()) ::
  {:ok, [experimental_workspace_adapter_list_200_json_resp()]}
  | {:error, OpenCode.Generated.BadRequestError.t()}
```

List workspace adapters

List all available workspace adapters for the current project.

## Options

  * `directory`
  * `workspace`

# `experimental_workspace_create`

```elixir
@spec experimental_workspace_create(body :: map(), opts :: keyword()) ::
  {:ok, t()}
  | {:error,
     OpenCode.Generated.EffectHttpApiErrorBadRequest.t()
     | OpenCode.Generated.InvalidRequestError.t()
     | OpenCode.Generated.WorkspaceCreateError.t()}
```

Create workspace

Create a workspace for the current project.

## Options

  * `directory`
  * `workspace`

## Request Body

**Content Types**: `application/json`

# `experimental_workspace_list`

```elixir
@spec experimental_workspace_list(opts :: keyword()) ::
  {:ok, [t()]} | {:error, OpenCode.Generated.BadRequestError.t()}
```

List workspaces

List all workspaces.

## Options

  * `directory`
  * `workspace`

# `experimental_workspace_remove`

```elixir
@spec experimental_workspace_remove(id :: String.t(), opts :: keyword()) ::
  {:ok, t()}
  | {:error,
     OpenCode.Generated.EffectHttpApiErrorBadRequest.t()
     | OpenCode.Generated.InvalidRequestError.t()}
```

Remove workspace

Remove an existing workspace.

## Options

  * `directory`
  * `workspace`

# `experimental_workspace_status`

```elixir
@spec experimental_workspace_status(opts :: keyword()) ::
  {:ok, [experimental_workspace_status_200_json_resp()]}
  | {:error, OpenCode.Generated.BadRequestError.t()}
```

Workspace status

Get connection status for workspaces in the current project.

## Options

  * `directory`
  * `workspace`

# `experimental_workspace_sync_list`

```elixir
@spec experimental_workspace_sync_list(opts :: keyword()) ::
  :ok | {:error, OpenCode.Generated.BadRequestError.t()}
```

Sync workspace list

Register missing workspaces returned by workspace adapters.

## Options

  * `directory`
  * `workspace`

# `experimental_workspace_warp`

```elixir
@spec experimental_workspace_warp(body :: map(), opts :: keyword()) ::
  :ok
  | {:error,
     OpenCode.Generated.InvalidRequestError.t()
     | OpenCode.Generated.NotFoundError.t()
     | OpenCode.Generated.VcsApplyError.t()
     | OpenCode.Generated.WorkspaceWarpError.t()}
```

Warp session into workspace

Move a session's sync history into the target workspace, or detach it to the local project.

## Options

  * `directory`
  * `workspace`

## Request Body

**Content Types**: `application/json`

---

*Consult [api-reference.md](api-reference.md) for complete listing*
