---
title: "SDK: skills"
description: "The skills methods of the Overlane TypeScript SDK, with their signatures. Generated from the SDK types."
---

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

# SDK: skills

{/* Generated by apps/docs/scripts/generate.mjs (SDK pages from the TypeScript types in packages/sdk). Do not edit; run `pnpm --filter @overlane/docs gen`. */}

The `skills` area has 5 methods on the client. Each takes one object of path, query and body arguments and an optional `CallOptions`, and returns a promise of the response body. A refused call rejects with `OverlaneApiError` (see the [SDK index](/sdk/)).

## skillsApprove

Approve a skill draft so tasks in the project use it (a person does this)

- Request: `POST` on `/v1/tenants/{tenantId}/projects/{projectId}/skills/{name}/approve`

```ts
skillsApprove(args: { tenantId: string; projectId: string; name: string; body?: Record<string, unknown> }, options?: CallOptions): Promise<ProjectSkill>
```

## skillsGet

Read a skill with its full SKILL.md text

- Request: `GET` on `/v1/tenants/{tenantId}/projects/{projectId}/skills/{name}`

```ts
skillsGet(args: { tenantId: string; projectId: string; name: string }, options?: CallOptions): Promise<ProjectSkill>
```

## skillsList

List the project's skills with their review state

- Request: `GET` on `/v1/tenants/{tenantId}/projects/{projectId}/skills`

```ts
skillsList(args: { tenantId: string; projectId: string }, options?: CallOptions): Promise<ProjectSkillList>
```

## skillsReject

Reject a skill draft (a person does this)

- Request: `POST` on `/v1/tenants/{tenantId}/projects/{projectId}/skills/{name}/reject`

```ts
skillsReject(args: { tenantId: string; projectId: string; name: string; body?: Record<string, unknown> }, options?: CallOptions): Promise<ProjectSkill>
```

## skillsSave

Save one of your assistant conversations as a skill draft in the standard skill format; secrets are removed and the draft is not used until it is approved

- Request: `POST` on `/v1/tenants/{tenantId}/projects/{projectId}/skills/from-conversation`

```ts
skillsSave(args: { tenantId: string; projectId: string; body: SaveSkillRequest }, options?: CallOptions): Promise<ProjectSkill>
```

Source: https://docs.overlane.app/sdk/skills/index.mdx
