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

Provides API endpoints related to experimental

# `experimental_console_list_orgs_200_json_resp`

```elixir
@type experimental_console_list_orgs_200_json_resp() :: %{
  orgs: [experimental_console_list_orgs_200_json_resp_orgs()]
}
```

# `experimental_console_list_orgs_200_json_resp_orgs`

```elixir
@type experimental_console_list_orgs_200_json_resp_orgs() :: %{
  account_email: String.t(),
  account_id: String.t(),
  account_url: String.t(),
  active: boolean(),
  org_id: String.t(),
  org_name: String.t()
}
```

# `experimental_console_get`

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

Get active Console provider metadata

Get the active Console org name and the set of provider IDs managed by that Console org.

## Options

  * `directory`
  * `workspace`

# `experimental_console_list_orgs`

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

List switchable Console orgs

Get the available Console orgs across logged-in accounts, including the current active org.

## Options

  * `directory`
  * `workspace`

# `experimental_console_switch_org`

```elixir
@spec experimental_console_switch_org(body :: map(), opts :: keyword()) ::
  {:ok, boolean()} | :error
```

Switch active Console org

Persist a new active Console account/org selection for the current local OpenCode state.

## Options

  * `directory`
  * `workspace`

## Request Body

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

# `experimental_resource_list`

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

Get MCP resources

Get all available MCP resources from connected servers. Optionally filter by name.

## Options

  * `directory`
  * `workspace`

# `experimental_session_background`

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

Background subagents

Detach any synchronous subagents currently blocking the session and continue them in the background.

## Options

  * `directory`
  * `workspace`

# `experimental_session_list`

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

List sessions

Get a list of all OpenCode sessions across projects, sorted by most recently updated. Archived sessions are excluded by default.

## Options

  * `directory`
  * `workspace`
  * `roots`
  * `start`
  * `cursor`
  * `search`
  * `limit`
  * `archived`

# `tool_ids`

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

List tool IDs

Get a list of all available tool IDs, including both built-in tools and dynamically registered tools.

## Options

  * `directory`
  * `workspace`

# `tool_list`

```elixir
@spec tool_list(opts :: keyword()) ::
  {:ok, [OpenCode.Generated.ToolListItem.t()]}
  | {:error,
     OpenCode.Generated.EffectHttpApiErrorBadRequest.t()
     | OpenCode.Generated.InvalidRequestError.t()}
```

List tools

Get a list of available tools with their JSON schema parameters for a specific provider and model combination.

## Options

  * `directory`
  * `workspace`
  * `provider`
  * `model`

# `worktree_create`

```elixir
@spec worktree_create(
  body :: OpenCode.Generated.WorktreeCreateInput.t(),
  opts :: keyword()
) ::
  {:ok, OpenCode.Generated.Worktree.t()}
  | {:error,
     OpenCode.Generated.InvalidRequestError.t()
     | OpenCode.Generated.WorktreeError.t()}
```

Create worktree

Create a new git worktree for the current project and run any configured startup scripts.

## Options

  * `directory`
  * `workspace`

## Request Body

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

# `worktree_list`

```elixir
@spec worktree_list(opts :: keyword()) ::
  {:ok, [String.t()]}
  | {:error,
     OpenCode.Generated.InvalidRequestError.t()
     | OpenCode.Generated.WorktreeError.t()}
```

List worktrees

List all sandbox worktrees for the current project.

## Options

  * `directory`
  * `workspace`

# `worktree_remove`

```elixir
@spec worktree_remove(
  body :: OpenCode.Generated.WorktreeRemoveInput.t(),
  opts :: keyword()
) ::
  {:ok, boolean()}
  | {:error,
     OpenCode.Generated.InvalidRequestError.t()
     | OpenCode.Generated.WorktreeError.t()}
```

Remove worktree

Remove a git worktree and delete its branch.

## Options

  * `directory`
  * `workspace`

## Request Body

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

# `worktree_reset`

```elixir
@spec worktree_reset(
  body :: OpenCode.Generated.WorktreeResetInput.t(),
  opts :: keyword()
) ::
  {:ok, boolean()}
  | {:error,
     OpenCode.Generated.InvalidRequestError.t()
     | OpenCode.Generated.WorktreeError.t()}
```

Reset worktree

Reset a worktree branch to the primary default branch.

## Options

  * `directory`
  * `workspace`

## Request Body

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

---

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