MCPcopy Index your code
hub / github.com/airbytehq/abctl

github.com/airbytehq/abctl @v0.30.4

Chat with this repo
repository ↗ · DeepWiki ↗ · release v0.30.4 ↗ · + Follow
1,101 symbols 4,661 edges 166 files 560 documented · 51%
What it actually does AI analysis from the code graph — generated when you open this
loading…
README

abctl logo

abctl

Airbyte's command line tool for local Airbyte deployments.

[!NOTE] This README focuses on the abctl tool itself, not the Airbyte platform.

See Airbyte's Quickstart to walk through setting up Airbyte for the first time.


Quickstart

[!IMPORTANT] Authentication credentials are randomly generated as part of the installation process.

After installation is complete, to find your authentication credentials run abctl local credentials.

  1. Install Docker
  2. Linux
  3. Mac
  4. Windows

  5. Install abctl

  6. Via brew brew tap airbytehq/tap brew install abctl
  7. Via go install go install github.com/airbytehq/abctl@latest
  8. Via Github
  9. Install Airbyte # install Airbyte abctl local install # fetch the login credentials abctl local credentials

    [!NOTE] Depending on your internet speed, abctl local install may take up to 30 minutes.

    By default abctl local install configures Airbyte to accessible by all inbound requests on port 8000. This typically includes access via the host's ip-address and localhost.

    If port 8000 is not available. or another port is preferred, --port [PORT] can be specified.

  10. Login to Airbyte

If abctl local install completed successfully, it should open a browser to http://localhost:8000 (or to the --host and --port overrides if specified). If this is the first time Airbyte has been installed you will be asked to provide an email and organization name. To retrieve your password to login, run abctl local credentials.

Overview

arch.png

As mentioned in the quickstart, the only prerequisite abctl has is that Docker must be installed, running, and accessible. However, the Airbyte platform requires a Kubernetes cluster, which abctl creates by utilizing kind (kind runs a Kubernetes cluster within a Docker container). With kind's Kubernetes cluster, abctl uses helm to install (or update to) the latest (by default) Airbyte helm chart and the latest NGINX Ingress Controller helm chart.

Commands

All commands and sub-commands support the following optional global flags:

Short Long Description
-h --help Displays the help information, description the available options.
-v --verbose Enables verbose (debug) output.

Useful when debugging unexpected behavior. |

All commands support the following environment variables:

Name Description
DO_NOT_TRACK Set to any value to disable telemetry tracking.

The following commands are supported: - local - version

local

abctl local --help

The local sub-commands are focused on managing the local Airbyte installation. The following sub-commands are available: - credentials - deployments - install - status - uninstall

credentials

abctl local credentials

Displays the credentials required to login to the local Airbyte installation.

[!NOTE] When abctl local install is first executed, random password, client-id, and client-secret are generated.

Returns ths email, password, client-id, and client-secret credentials. The email and password are required to login to Airbyte. The client-id and client-secret are necessary to create an Access Token for interacting with the Airbyte API.

For example:

$ abctl local credentials
{
  "password": "[RANDOM PASSWORD]",
  "client-id": "[RANDOM CLIENT-ID]",
  "client-secret": "[RANDOM CLIENT-SECRET]"
}

credentials supports the following optional flags

Name Default Description
--email "" Changes the authentication email address.
--password "" Changes the authentication password.

deployments

abctl local deployments

Display kubernetes deployment information and allows for restarting a kubernetes deployment.

deployments supports the following optional flags

Name Default Description
--restart "" Restarts the provided deployment.

install

abctl local install

Installs a local Airbyte instance or updates an existing installation which was initially installed by abctl.

[!NOTE] Depending on your internet speed, abctl local install may take up to 30 minutes.

install supports the following optional flags:

[!NOTE] An - in the default column indicates no value can be provided.

These flags behave as a switch, enabled if provided, disabled if not.

Name Default Description
--chart "" Path to chart.
--chart-version latest Which Airbyte helm-chart version to install.
--docker-email "" Docker email address to authenticate against --docker-server.

Can also be specified by the environment-variable ABCTL_LOCAL_INSTALL_DOCKER_EMAIL. | | --docker-password | "" | Docker password to authenticate against --docker-server.

Can also be specified by the environment-variable ABCTL_LOCAL_INSTALL_DOCKER_PASSWORD. | | --docker-server | "" | Docker server to authenticate against.

Can also be specified by the environment-variable ABCTL_LOCAL_INSTALL_DOCKER_SERVER. | | --docker-username | "" | Docker username to authenticate against --docker-server.

Can also be specified by the environment-variable ABCTL_LOCAL_INSTALL_DOCKER_USERNAME. | | --insecure-cookies | - | Disables secure cookie requirements.

Only set if using --host with an insecure (non https) connection. | | --low-resource-mode | false | Run Airbyte in low resource mode. | | --host | "" | FQDN where the Airbyte installation will be accessed. Default is to allow for all incoming traffic on port --port.

Set this if the Airbyte installation needs a more restricted host configuration. | | --no-browser | - | Disables launching the browser when installation completes.

Useful to set in situations where no browser is available. | | --port | 8000 | Port where the Airbyte installation will be accessed.

Set this if port 8000 is already in use or if a different port is preferred. | | --secret | "" | Can be set multiple times.

Creates a kubernetes secret based on the contents of the file provided.

Useful when used in conjunction with --values for customizing installation. | | --values | "" | Helm values file to further customize the Airbyte installation. | | --volume | "" | Can be set multiple times.

Mounts additional volumes in the kubernetes cluster.

Must be in the format of <HOST_PATH>:<GUEST_PATH>. |

Low Resource Mode

The --low-resource-mode flag optimizes Airbyte for environments with limited CPU and memory resources. When enabled, this mode makes the following changes:

Resource Requests: - Sets all job resource requests (CPU and memory) to 0, allowing Kubernetes to schedule jobs without minimum resource guarantees - Applies to all job types: check, discover, spec, and sidecar containers

Feature Adjustments: - Disables the Connector Builder Server to reduce overall resource consumption

This mode is ideal for: - Development and testing environments with limited resources - Machines with constrained CPU or memory - Situations where multiple services need to share limited system resources

[!NOTE] While low resource mode reduces resource requirements, it may impact performance for data-intensive operations. It is not recommended for production workloads with large data volumes.

Example usage:

abctl local install --low-resource-mode

Deploying a Specific Airbyte Version

By default, abctl local install installs the latest version of Airbyte. To deploy a specific version, create a custom Helm values file and pass it using the --values flag.

  1. Create an override_values.yaml file with the following content (replacing 1.2.0 with your desired version):

yaml global: # Docker image config that will apply to all images. image: # Image tag to use for airbyte images. # Does not include non-airbyte images such as temporal, minio, etc. tag: "1.2.0"

  1. Install Airbyte using the custom values file:

abctl local install --values override_values.yaml

[!NOTE] The --values flag can be used to customize any Airbyte Helm chart values, not just the image tag. See the Airbyte Helm chart for all available configuration options.

status

abctl local status

If an Airbyte installation exists, returns information regarding that installation.

For example:

$ abctl local status
Existing cluster 'airbyte-abctl' found
Found helm chart 'airbyte-abctl'
  Status: deployed
  Chart Version: 0.422.2
  App Version: 0.63.15
Found helm chart 'ingress-nginx'
  Status: deployed
  Chart Version: 4.11.1
  App Version: 1.11.1
Airbyte should be accessible via http://localhost:8000

uninstall

abctl local uninstall

Uninstalls a local Airbyte instance.

[!NOTE] The data associated with the installed Airbyte instance will not be removed.

This is done to allow Airbyte to be reinstalled at a later date with all the data preserved.

uninstall supports the following optional flags:

[!NOTE] An - in the default column indicates no value can be provided.

These flags behave as a switch, enabled if provided, disabled if not.

Name Default Description
--persisted - Will remove all data for the Airbyte installation.

This cannot be undone. |

images

abctl images

Manage images used by Airbyte and abctl.

The following sub-commands are available: - manifest

manifest

abctl images manifest

Display a manifest of images used by Airbyte and abctl.

Name Default Description
--chart "" Path to chart.
--chart-version latest Which Airbyte helm-chart version to install.
--values "" Helm values f

Extension points exported contracts — how you extend this code

Doer (Interface)
Doer interface for testing purposes [11 implementers]
internal/telemetry/segment.go
HTTPDoer (Interface)
HTTPDoer interface for making HTTP requests [11 implementers]
internal/http/client.go
CredentialsStore (Interface)
CredentialsStore interface for storing/loading credentials [11 implementers]
internal/auth/auth.go
HTTPClient (Interface)
HTTPClient exists for testing purposes [11 implementers]
internal/airbyte/api.go
HTTPClient (Interface)
(no doc) [11 implementers]
internal/service/manager.go
ConfigStore (Interface)
ConfigStore interface for performing config operations on the store. [4 implementers]
internal/airbox/config_store.go
Cluster (Interface)
Cluster is an interface representing all the actions taken at the cluster level. [3 implementers]
internal/k8s/cluster.go
Service (Interface)
Service interface for Control Plane API operations [3 implementers]
internal/api/client.go

Core symbols most depended-on inside this repo

Errorf
called by 572
internal/k8s/provider.go
Error
called by 369
internal/abctl/error.go
Run
called by 184
internal/cmd/auth/login.go
EXPECT
called by 137
internal/ui/mock/mock.go
String
called by 116
internal/telemetry/config.go
Contains
called by 103
internal/common/set.go
Do
called by 73
internal/airbyte/api.go
Update
called by 53
internal/ui/select.go

Shape

Method 514
Function 421
Struct 125
Interface 17
FuncType 16
TypeAlias 8

Languages

Go100%

Modules by API surface

internal/k8s/client.go59 symbols
internal/helm/mock/mock.go50 symbols
internal/ui/mock/mock.go36 symbols
internal/ui/ui.go35 symbols
internal/k8s/k8stest/k8stest.go29 symbols
internal/docker/docker.go25 symbols
internal/k8s/client_test.go24 symbols
internal/api/mock/mock.go22 symbols
internal/airbox/auth.go22 symbols
internal/ui/ui_test.go20 symbols
internal/service/manager.go20 symbols
internal/service/install.go20 symbols

For agents

$ claude mcp add abctl \
  -- python -m otcore.mcp_server <graph>

⬇ download graph artifact