Skip to main content

CLI tool for Blocks, a platform for writing custom AI-enabled codebase automations in Python. Leverage a full codebase-aware API. Automatically trigger automations from Github, Slack, and other providers.

Project description

Blocks CLI

A CLI tool for Blocks, a platform for writing custom AI-enabled codebase automations in Python. Leverage a full codebase-aware API. Automatically trigger automations from GitHub, Slack, and other providers.

Status: Private alpha. Please keep your SDK updated to get the latest fixes and features.

Prerequisites

  • Python >= 3.9
  • pip available in your environment

Installation

Blocks CLI is packaged with the Python SDK.

pip install blocks-sdk

Verify installation:

blocks --help

Quick Start

  1. Initialize in your repository (creates a .blocks directory and optionally saves your API key):
# Option A: Provide key now
blocks init --key <your-api-key>

# Option B: Initialize, then configure later
blocks init
blocks configure --key <your-api-key>
  1. Create a new automation scaffold:
blocks create my_automation

This generates .blocks/my_automation/ with a starter main.py and requirements.txt.

  1. Edit the generated automation to set an event and repository:
# .blocks/my_automation/main.py
from blocks import task, on

@task(name="my_automation")
@on("github.pull_request", repos=["MyOrg/MyRepo"])
def my_automation(event):
    print(event)
  1. Test the automation locally with a sample event:
blocks test .blocks/my_automation/main.py
# If your file defines multiple automations, specify one by name:
# blocks test .blocks/my_automation/main.py --name my_automation
  1. Push the automation to Blocks:
blocks push .blocks/my_automation/main.py

Command Reference

  • blocks init [--key <api-key>]: Initializes Blocks in the current repo by creating a .blocks directory. When --key is provided, verifies and saves your API key.
  • blocks configure --key <api-key>: Verifies and saves/updates your API key.
  • blocks create <name>: Creates a new automation under .blocks/<name>/ with a starter template and requirements.txt.
  • blocks test <file> [--name <automation>]: Loads the automation from <file>, fetches a sample event for the configured trigger, and invokes it locally.
  • blocks push <file>: Packages dependencies and source, uploads the bundle, registers the automation, and triggers a build.

Naming Rules

  • Automation names must start with a letter and can include letters, numbers, dashes, and underscores.
  • Example valid names: my_automation, code-reviewer, build_123.

Troubleshooting

  • Already initialized: If .blocks exists, blocks init will report it. Use blocks configure --key <api-key> to update your key.
  • Invalid API key: Ensure your key is correct. You can manage keys at https://app.blocksorg.com
  • Missing event: The @on("...") decorator must specify a supported event. See events at https://docs.blocksorg.com/docs/events
  • Multiple automations in a file: Use --name <automation> with blocks test to choose one.

Upgrading

pip install -U blocks-sdk

License

AGPL-3.0. See LICENSE for details.

Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

blocks_cli-0.1.42.tar.gz (26.1 kB view details)

Uploaded Source

File details

Details for the file blocks_cli-0.1.42.tar.gz.

File metadata

  • Download URL: blocks_cli-0.1.42.tar.gz
  • Upload date:
  • Size: 26.1 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.11.11

File hashes

Hashes for blocks_cli-0.1.42.tar.gz
Algorithm Hash digest
SHA256 2731f9bbc302069461e4c93e738b86beb20104cb9c5cb3b1a7d385e910ee9338
MD5 457952d6a8ea8beb767f821fb00848af
BLAKE2b-256 f844e10b8783ab271df88effcfc2e4e33b0e04958252727c17dc96f586132569

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page