> ## Documentation Index
> Fetch the complete documentation index at: https://www.1password.dev/llms.txt
> Use this file to discover all available pages before exploring further.

# Build integrations with 1Password

> Learn how to build with 1Password using 1Password CLI or SDKs.

export const Image = ({src, darkSrc, alt, width, border, height, round}) => {
  const classNames = ["mint-mx-4"];
  if (border) {
    classNames.push("mint-rounded-sm");
  }
  if (round) {
    classNames.push("mint-rounded-lg");
  }
  const style = {};
  if (width) style.width = typeof width === "number" ? `${width}px` : width;
  if (height) style.height = typeof height === "number" ? `${height}px` : height;
  return darkSrc ? <>
      <img src={src} alt={alt} className={[...classNames, "dark:hidden"].join(" ")} style={Object.keys(style).length > 0 ? style : undefined} />
      <img src={darkSrc} alt={alt} className={[...classNames, "hidden dark:block"].join(" ")} style={Object.keys(style).length > 0 ? style : undefined} onError={e => {
    e.target.src = src;
  }} />
    </> : <img src={src} alt={alt} className={classNames.join(" ")} style={Object.keys(style).length > 0 ? style : undefined} />;
};

You can build integrations, applications, and scripts that programmatically interact with 1Password using two primary interfaces: [1Password CLI](/cli/get-started) and [1Password SDKs](/sdks). Both tools allow you to access and manage items, vaults, users, and secrets in your 1Password account. You can also deploy a self-hosted [Connect server](/connect) to access your items.

<Tip>
  If you want to learn how to securely load secrets from 1Password in your code, see [**Secure your developer secrets**](/get-started/secure-developer-secrets) or [**Secure your deployments**](/get-started/secure-deployment).
</Tip>

## Choose your interface

### 1Password CLI

[1Password CLI](/cli) is a command-line tool that you can call from scripts, build tools, or any process that can run shell commands.

1Password CLI is the best fit when you want to:

* Write shell scripts that access or manage your information in 1Password.
* Access 1Password interactively from the terminal with biometric authentication.
* Access 1Password from CI/CD pipelines or  infrastructure-as-code workflows using automated authentication with service accounts.
* Explore or test before committing to an SDK integration.

### 1Password SDKs

[1Password SDKs](/sdks) provide native libraries for Go, JavaScript, and Python that let you interact with 1Password directly in your application code.

1Password SDKs are the best fit when you want to:

* Build an application that needs to manage items, vaults, groups, or secrets at runtime.
* Embed 1Password in an integration that other people will use, with convenient authentication through their 1Password desktop app.
* Build a Go, JavaScript, or Python integration with the type safety, error handling, and conventions of your preferred language.

### Connect server

[1Password Connect](/connect) allows you to deploy a private REST API in your own infrastructure that provides access to your 1Password items. After the initial fetch, secrets are served locally, reducing latency and dependency on external API availability.

Connect has its own [Go](https://github.com/1Password/connect-sdk-go), [JavaScript](https://github.com/1Password/connect-sdk-js), and [Python](https://github.com/1Password/connect-sdk-python) SDKs that allow you to get vaults and manage items.

## Choose your authentication method

### 1Password desktop app

Authenticate with prompts from the [1Password desktop app](https://1password.com/downloads/), so you can approve requests with Touch ID, Windows Hello, Linux system authentication, or your 1Password account password.

<Image alt="A screenshot of a Python script running with an authorization prompt from the 1Password desktop app." src="/static/img/sdks/sdk-auth-prompt.png" />

**Best for:** Integrations that run locally, where a human is present to approve requests. Use the 1Password app to authenticate when you want minimal setup, human-in-the-loop approval, user-specific auditing, access to your full account including personal vaults, and the ability to authenticate with biometrics.

**Works with:** [1Password CLI](/cli/app-integration), [1Password SDKs](/sdks/concepts#1password-desktop-app)

### Service accounts

[Service accounts](/service-accounts) allow you to authenticate using a token scoped to specific [vaults](https://support.1password.com/1password-glossary/#vault) or [Environments](/environments) in your 1Password account, with no user interaction required. You can also control which actions a service account can perform in the vaults it can access.

**Best for:** Integrations that run without a human present and following the [principle of least privilege <Icon icon="arrow-up-right-from-square" />](https://csrc.nist.gov/glossary/term/least_privilege) in your project. Use service accounts for automated access, shared building, headless authentication, or when you want to authenticate with a credential that isn't tied to an individual user.  Service accounts can’t access your built-in [Personal](https://support.1password.com/1password-glossary#personal-vault), [Private](https://support.1password.com/1password-glossary#private-vault), or [Employee](https://support.1password.com/1password-glossary#employee-vault) vault.

**Works with:** [1Password CLI](/service-accounts/use-with-1password-cli), [1Password SDKs](/sdks/concepts#1password-service-account)

### Connect server token

If you deploy a Connect server, you can use your Connect server token and host to authenticate 1Password CLI and certain pre-built integrations, like the [1Password Connect Ansible collection](/connect/ansible).

**Best for:** When you want to interact with your 1Password Connect deployment using other tools and integrations.

**Works with:** [1Password CLI](/connect/cli), integrations that support Connect

## Compatibility

| Authentication method    | 1Password CLI | 1Password SDKs | Connect SDKs |
| ------------------------ | ------------- | -------------- | ------------ |
| **Desktop app**          | Yes           | Yes            | No           |
| **Service account**      | Yes           | Yes            | No           |
| **Connect server token** | Yes           | No             | Yes          |

## Start building

After you choose an interface and authentication method, learn how to get started with your preferred workflow:

<CardGroup cols={2}>
  <Card title="Get started with 1Password CLI" href="/cli/get-started" icon="https://mintcdn.com/ab-634991b8/kblVKwG534GVs6ut/static/img/product-icons/light/cli.svg?fit=max&auto=format&n=kblVKwG534GVs6ut&q=85&s=6cc858defdafe9584a48abfd8139136b" width="33" height="32" data-path="static/img/product-icons/light/cli.svg">
    Install the CLI and authenticate with the desktop app, a service account, or Connect server.
  </Card>

  <Card title="Get started with 1Password SDKs" href="/sdks" icon="https://mintcdn.com/ab-634991b8/kblVKwG534GVs6ut/static/img/product-icons/light/sdks.svg?fit=max&auto=format&n=kblVKwG534GVs6ut&q=85&s=967806ff5e487d91f20c628285a3ccf3" width="33" height="32" data-path="static/img/product-icons/light/sdks.svg">
    Install an SDK and authenticate with the desktop app or a service account.
  </Card>

  <Card title="Create a service account" href="/service-accounts/get-started" icon="key">
    Set up token-based authentication for automated workflows.
  </Card>

  <Card title="Deploy a Connect server" href="/connect/get-started" icon="https://mintcdn.com/ab-634991b8/kblVKwG534GVs6ut/static/img/product-icons/light/connect.svg?fit=max&auto=format&n=kblVKwG534GVs6ut&q=85&s=97582b6157791ee94a12439920176746" width="33" height="32" data-path="static/img/product-icons/light/connect.svg">
    Host a private REST API for secret access in your own infrastructure.
  </Card>
</CardGroup>

## Examples

<CardGroup cols={2}>
  <Card title="1Password CLI scripts" href="/cli/scripts" icon="https://mintcdn.com/ab-634991b8/kblVKwG534GVs6ut/static/img/product-icons/light/cli.svg?fit=max&auto=format&n=kblVKwG534GVs6ut&q=85&s=6cc858defdafe9584a48abfd8139136b" width="33" height="32" data-path="static/img/product-icons/light/cli.svg">
    Example shell scripts that use the CLI in real workflows.
  </Card>

  <Card title="1Password SDK tutorials" href="/sdks/tutorials" icon="https://mintcdn.com/ab-634991b8/kblVKwG534GVs6ut/static/img/product-icons/light/sdks.svg?fit=max&auto=format&n=kblVKwG534GVs6ut&q=85&s=967806ff5e487d91f20c628285a3ccf3" width="33" height="32" data-path="static/img/product-icons/light/sdks.svg">
    Step-by-step guides for building with the Go, JavaScript, and Python SDKs.
  </Card>
</CardGroup>
