Link Search Menu Expand Document

Install lakeFS CLI

lakeFS comes with its own native CLI client. You can see the complete command reference here.

The CLI is a great way to get started with lakeFS since it is a complete implementation of the lakeFS API.

You can follow the below tutorial video to get started with the CLI or follow the instructions on this page.


Here’s how to get started with the CLI:

  1. Download the CLI binary:

    The CLI binary can be downloaded from the official lakeFS releases published on GitHub under “Assets”. Unless you need a specific previous version of the CLI, it is recommended to download the most recently released version.

    Release Assets

    The Operating System of the computer being used determines whether you should pick the binary Asset compiled for a Windows, Linux, or Mac (Darwin). For Mac and Linux Operating Systems, the processor determines whether you should download the x64 or arm binary.

  2. Once unzipped, inside the downloaded asset, you’ll see a file named lakectl. It’s recommended that you place this file somewhere in your PATH (this is OS dependant but for *NIX systems , /usr/local/bin is usually a safe bet). Once in your PATH, you’ll be able to open a Terminal program and run lakectl commands!

  3. We recommend starting with lakectl config to configure the CLI to use the credentials created earlier:

    lakectl config
    # output:
    # Config file /home/janedoe/.lakectl.yaml will be used
    # Secret access key: ****************************************
    # Server endpoint URL: http://localhost:8000

    Note The first time you run a lakectl command, depending on your computer’s security settings, you may need to respond to a prompt to allow the program to run.

  4. Now that we’ve configured it, let’s run a few sample commands. First we can list the branches in the repo we created:

    lakectl branch list lakefs://example-repo
    # output:
    # +----------+------------------------------------------------------------------+
    # | REF NAME | COMMIT ID                                                        |
    # +----------+------------------------------------------------------------------+
    # | main     | a91f56a7e11be1348fc405053e5234e4af7d6da01ed02f3d9a8ba7b1f71499c8 |
    # +----------+------------------------------------------------------------------+

    Next we can create a new commit on the main branch for the file we added:

    lakectl commit lakefs://example-repo/main -m 'added our first file!'
    # output:
    # Commit for branch "main" done.
    # ID: 901f7b21e1508e761642b142aea0ccf28451675199655381f65101ea230ebb87
    # Timestamp: 2021-06-15 13:48:37 +0300 IDT
    # Parents: a91f56a7e11be1348fc405053e5234e4af7d6da01ed02f3d9a8ba7b1f71499c8

    And finally we can view the log to see the new commit:

    lakectl log lakefs://example-repo/main
    # output:  
    # commit 901f7b21e1508e761642b142aea0ccf28451675199655381f65101ea230ebb87
    # Author: Example User <>
    # Date: 2021-06-15 13:48:37 +0300 IDT
          added our first file! 

    Note lakeFS version <= v0.33.1 uses ‘@’ (instead of ‘/’) as separator between repository and branch.

Next steps

Once you’re ready to test lakeFS with a real workflow, it’s time to deploy lakeFS to AWS.