Intro to AlgoKit | Algorand Developer Portal

AlgoKit is a comprehensive software development kit designed to streamline and accelerate the process of building decentralized applications on the Algorand blockchain. At its core, AlgoKit features a powerful command-line interface (CLI) tool that provides developers with an array of functionalities to simplify blockchain development. Along with the CLI, AlgoKit offers a suite of libraries, templates, and tools that facilitate rapid prototyping and deployment of secure, scalable, and efficient applications. Whether you’re a seasoned blockchain developer or new to the ecosystem, AlgoKit offers everything you need to harness the full potential of Algorand’s impressive tech and innovative consensus algorithm.

AlgoKit CLI

AlgoKit CLI is a powerful set of command line tools for Algorand developers. Its goal is to help developers build and launch secure, automated, production-ready applications rapidly.

AlgoKit CLI commands

Here is the list of commands that you can use with AlgoKit CLI.

To learn more about AlgoKit CLI, refer to the following resources:

AlgoKit CLI Documentation Learn more about using and configuring AlgoKit CLI

AlgoKit CLI Repo Explore the codebase and contribute to its development

Algorand Python

If you are a Python developer, you no longer need to learn a complex smart contract language to write smart contracts.

Algorand Python is a semantically and syntactically compatible, typed Python language that works with standard Python tooling and allows you to write Algorand smart contracts (apps) and logic signatures in Python. Since the code runs on the Algorand virtual machine(AVM), there are limitations and minor differences in behaviors from standard Python, but all code you write with Algorand Python is Python code.

Here is an example of a simple Hello World smart contract written in Algorand Python:

from algopy import ARC4Contract, String, arc4

class HelloWorld(ARC4Contract):

@arc4.abimethod()

def hello(self, name: String) -> String:

return "Hello, " + name + "!"

To learn more about Algorand Python, refer to the following resources:

Algorand Python Documentation Learn more about the design and implementation of Algorand Python

Algorand Python Repo Explore the codebase and contribute to its development

Algorand TypeScript

If you are a TypeScript developer, you no longer need to learn a complex smart contract language to write smart contracts.

Algorand TypeScript is a semantically and syntactically compatible, typed TypeScript language that works with standard TypeScript tooling and allows you to write Algorand smart contracts (apps) and logic signatures in TypeScript. Since the code runs on the Algorand virtual machine(AVM), there are limitations and minor differences in behaviors from standard TypeScript, but all code you write with Algorand TypeScript is TypeScript code.

Here is an example of a simple Hello World smart contract written in Algorand TypeScript:

import { Contract } from '@algorandfoundation/algorand-typescript';

export class HelloWorld extends Contract {

hello(name: string): string {

return `Hello, ${name}`;

}
}

To learn more about Algorand TypeScript, refer to the following resources:

Algorand TypeScript Documentation Learn more about the design and implementation of Algorand TypeScript

Algorand TypeScript Repo Explore the codebase and contribute to its development

AlgoKit Utils

AlgoKit Utils is a utility library recommended for you to use for all chain interactions like sending transactions, creating tokens(ASAs), calling smart contracts, and reading blockchain records. The goal of this library is to provide intuitive, productive utility functions that make it easier, quicker, and safer to build applications on Algorand. Largely, these functions wrap the underlying Algorand SDK but provide a higher-level interface with sensible defaults and capabilities for common tasks.

AlgoKit Utils is available in TypeScript and Python.

Capabilities

The library helps you interact with and develop against the Algorand blockchain with a series of end-to-end capabilities as described below:

To learn more about AlgoKit Utils, refer to the following resources:

Algorand Utils Typescript Documentation Learn more about the design and implementation of Algorand Utils

Algorand Utils Typescript Repo Explore the codebase and contribute to its development

Algorand Utils Python Documentation Learn more about the design and implementation of Algorand Utils

Algorand Utils Python Repo Explore the codebase and contribute to its development

AlgoKit LocalNet

The AlgoKit LocalNet feature allows you to manage (start, stop, reset, manage) a locally sandboxed private Algorand network. This allows you to interact with and deploy changes against your own Algorand network without needing to worry about funding TestNet accounts, whether the information you submit is publicly visible, or whether you are connected to an active Internet connection (once the network has been started).

AlgoKit LocalNet uses Docker images optimized for a great developer experience. This means the Docker images are small and start fast. It also means that features suited to developers are enabled, such as KMD (so you can programmatically get faucet private keys).

To learn more about AlgoKit Localnet, refer to the following resources:

AlgoKit Localnet Documentation Learn more about using and configuring AlgoKit Localnet

AlgoKit Localnet GitHub Repository Explore the source code and technical implementation details

AVM Debugger

The AlgoKit AVM VS Code debugger extension provides a convenient way to debug any Algorand Smart Contracts written in TEAL.

To learn more about the AVM debugger, refer to the following resources:

AVM Debugger Documentation Learn more about using and configuring the AVM Debugger

AVM Debugger Extension Repo Explore the AVM Debugger codebase and contribute to its development

Language Servers

The Algorand VS Code Language Extensions provide developers with enhanced capabilities to build Algorand smart contracts efficiently within Visual Studio Code. Designed to work alongside the standard Python and TypeScript language servers, these extensions extend core IDE functionality by adding Algorand-specific diagnostics, validation, and intelligent code actions. The Python extension integrates seamlessly with the official Python extension and automatically detects the PuyaPy environment to offer real-time contract-aware analysis and quick fixes, helping developers catch errors early and improve code quality. Similarly, the TypeScript extension supports Algorand’s specialized TypeScript and smart contract utilities, providing targeted diagnostics and validation in a familiar developer workflow. Both extensions simplify the development process by offering immediate feedback relevant to Algorand’s unique blockchain environment, accelerating learning and reducing common mistakes. Currently in beta, they require Visual Studio Code 1.80.0 or later and are designed to complement existing language tooling, making them essential tools for any developer working on Algorand smart contracts.

Algokit TypeScript Language Server Learn more about the TypeScript Language Server

Algokit Python Langauge Server Learn more about the Python Language Server

Client Generator

The client generator generates a type-safe smart contract client for the Algorand Blockchain that wraps the application client in AlgoKit Utils and tailors it to a specific smart contract. It does this by reading an ARC-0032 application spec file and generating a client that exposes methods for each ABI method in the target smart contract, along with helpers to create, update, and delete the application.

To learn more about the client generator, refer to the following resources:

Client Generator TypeScript Documentation Learn more about the TypeScript client generator for Algorand smart contracts

Client Generator TypeScript Repo Explore the TypeScript client generator codebase and contribute to its development

Client Generator Python Documentation Learn more about the Python client generator for Algorand smart contracts

Client Generator Python Repo Explore the Python client generator codebase and contribute to its development

Testnet Dispenser

The AlgoKit TestNet Dispenser API provides functionalities to interact with the Dispenser service. This service enables users to fund and refund assets.

To learn more about the testnet dispenser, refer to the following resources:

Testnet Dispenser Documentation Learn more about using and configuring the AlgoKit TestNet Dispenser

Testnet Dispenser Repo Explore the technical implementation and contribute to its development

AlgoKit Tools and Versions

While AlgoKit as a collection was bumped to Version 3.0 on March 26, 2025, it is important to note that the individual tools in the kit are on different package version numbers. In the future this may be changed to epoch versioning so that it is clear that all packages are part of the same epoch release.

Tool Repository AlgoKit 3.0 Min Version
Command Line Interface (CLI) algokit-cli 2.6.0
Utils (Python) algokit-utils-py 4.0.0
Utils (TypeScript) algokit-utils-ts 9.0.0
Client Generator (Python) algokit-client-generator-py 2.1.0
Client Generator (TypeScript) algokit-client-generator-ts 5.0.0
Subscriber (Python) algokit-subscriber-py 1.0.0
Subscriber (TypeScript) algokit-subscriber-ts 3.2.0
Puya Compiler puya 4.5.3
Puya Compiler, TypeScript puya-ts 1.0.0-beta.58
AVM Unit Testing (Python) algorand-python-testing 0.5.0
AVM Unit Testing (TypeScript) algorand-typescript-testing 1.0.0-beta.30
Lora the Explorer algokit-lora 1.2.0
AVM VSCode Debugger algokit-avm-vscode-debugger 1.1.5
Utils Add-On for TypeScript Debugging algokit-utils-ts-debug 1.0.4
Base Project Template algokit-base-template 1.1.0
Python Smart Contract Project Template algokit-python-template 1.6.0
TypeScript Smart Contract Project Template algokit-typescript-template 0.3.1
React Vite Frontend Project Template algokit-react-frontend-template 1.1.1
Fullstack Project Template algokit-fullstack-template 2.1.4

Install

Prerequisites

The installation pre-requisites change depending on the method you use to install. Please refer to Installation Methods.

Depending on the features you choose to leverage from the AlgoKit CLI, additional dependencies may be required. The AlgoKit CLI will tell you if you are missing one for a given command. These optional dependencies are:

Cross-platform installation

AlgoKit can be installed using OS specific package managers, or using the python tool pipx. See below for specific installation instructions.

Installation Methods

Install AlgoKit on Windows

  1. Ensure prerequisites are installed
  2. Install using winget
winget install algokit
  1. Verify installation

Maintenance

Some useful commands for updating or removing AlgoKit in the future.

Install AlgoKit on Mac

  1. Ensure prerequisites are installed
  1. Install using Homebrew
brew install algorandfoundation/tap/algokit
  1. Restart the terminal to ensure AlgoKit is available on the path
  2. Verify installation

Maintenance

Some useful commands for updating or removing AlgoKit in the future.

Install AlgoKit on Linux

  1. Ensure prerequisites are installed
  1. Install using snap
sudo snap install algokit --classic

For detailed guidelines per each supported linux distro, refer to Snap Store.

  1. Verify installation

Maintenance

Some useful commands for updating or removing AlgoKit in the future.

Install AlgoKit with pipx on any OS

  1. Ensure desired prerequisites are installed
  1. Install using pipx
pipx install algokit
  1. Restart the terminal to ensure AlgoKit is available on the path
  2. Verify installation

Maintenance

Some useful commands for updating or removing AlgoKit in the future.

Verify installation

Verify AlgoKit is installed correctly by running algokit --version and you should see output similar to:

algokit, version 1.0.1

It is also recommended that you run algokit doctor to verify there are no issues in your local environment and to diagnose any problems if you do have difficulties running AlgoKit. The output of this command will look similar to:

timestamp: 2023-03-27T01:23:45+00:00

AlgoKit: 1.0.1

AlgoKit Python: 3.11.1 (main, Dec 23 2022, 09:28:24) [Clang 14.0.0 (clang-1400.0.29.202)] (location: /Users/algokit/.local/pipx/venvs/algokit)

OS: macOS-13.1-arm64-arm-64bit

docker: 20.10.21

docker compose: 2.13.0

git: 2.37.1

python: 3.10.9 (location:  /opt/homebrew/bin/python)

python3: 3.10.9 (location:  /opt/homebrew/bin/python3)

pipx: 1.1.0

poetry: 1.3.2

node: 18.12.1

npm: 8.19.2

brew: 3.6.18

If you are experiencing a problem with AlgoKit, feel free to submit an issue via:

https://github.com/algorandfoundation/algokit-cli/issues/new

Please include this output, if you want to populate this message in your clipboard, run algokit doctor -c

Troubleshooting

This section addresses specific edge cases and issues that some users might encounter when interacting with the CLI. The following table provides solutions to known edge cases:

Issue Description OS(s) with observed behaviour Steps to mitigate References
This scenario may arise if installed python was build without --with-ssl flag enabled, causing pip to fail when trying to install dependencies. Debian 12 Run sudo apt-get install -y libssl-dev to install the required openssl dependency. Afterwards, ensure to reinstall python with --with-ssl flag enabled. This includes options like building python from source code or using tools like pyenv. GitHub Issue
poetry install invoked directly or via algokit project bootstrap all fails on Could NOT find PkgConfig (missing: PKG_CONFIG_EXECUTABLE). MacOS >=14 using python 3.13 installed via homebrew Install dependencies deprecated in 3.13 and latest MacOS versions via brew install pkg-config, delete the virtual environment folder and retry the poetry install command invocation. N/A