# Authoring private Aleo programs: development tools you need

By [Colliseum](https://paragraph.com/@colliseum) · 2025-07-25

---

My name is Heorhii, and I’ve spent the last year deep in the Aleo ecosystem, building and testing private apps using zero-knowledge technology. If you're new to Aleo or just starting to write private programs, you're in the right place.

In this article, I’ll walk you through the key development tools that Aleo offers for authoring and running private programs, from low-level Aleo instructions and the powerful snarkVM, to the beginner-friendly Leo language and the browser-based Leo Playground. Whether you're building in Rust or experimenting in a web IDE, there’s a tool here to help you start creating privacy-preserving apps on-chain.

[https://developer.aleo.org/guides/introduction/getting\_started/](https://developer.aleo.org/guides/introduction/getting_started/)

**1\. Aleo Instructions: low-level control.** If you’re into fine-grained circuit design or building a compiler that targets Aleo, you’ll want to understand Aleo Instructions.

All Leo programs compile down to Aleo Instructions, which are then compiled into AVM bytecode. You write them in `.aleo` files and execute them via snarkVM.

**Installing snarkVM:**

    # Install from crates.io
    cargo install snarkvm
    

To verify it's working:

    snarkvm --help
    

You can also build it from source:

    git clone --branch mainnet --single-branch https://github.com/ProvableHQ/snarkVM.git
    cd snarkVM
    git checkout tags/testnet-beta
    cargo install --path .
    

**Your first Aleo Instructions program.** To create a new project:

    snarkvm new hello_aleo
    cd hello_aleo
    

This generates:

    hello_aleo/
    ├── main.leo
    ├── program.json
    └── README.md
    

To run the program:

    snarkvm run hello 2u32 3u32
    

You can also execute it to simulate proof generation:

    snarkvm execute hello 2u32 3u32
    

Use `--offline` to avoid hitting a node:

    snarkvm execute hello 2u32 3u32 --offline
    

Other helpful commands:

    snarkvm clean        # Cleans build artifacts
    snarkvm update       # Updates to latest snarkVM version
    snarkvm update --list   # View all available versions
    

[https://developer.aleo.org/guides/aleo/aleo/](https://developer.aleo.org/guides/aleo/aleo/)

**2\. Leo: Aleo’s smart contract language.** Leo is a high-level language purpose-built for Aleo. Inspired by Rust and JavaScript, it’s easy to read and write while abstracting away the hard stuff in zero-knowledge programming.

Leo is statically typed and includes tools for debugging, testing, and verifying your code.

**Installing Leo.** To install Leo:

    cargo install leo-lang
    

This puts `leo` into your `~/.cargo/bin/` directory.

To create a new Leo project:

    leo new hello_aleo
    cd hello_aleo
    

Run the function:

    leo run
    

Leo includes:

*   Type checking
    
*   Static analysis
    
*   Easy integration with Aleo accounts
    
*   Local deployment and proof generation
    

[https://docs.leo-lang.org/leo](https://docs.leo-lang.org/leo)

**3\. Leo Playground: code in the browser.** If you want to try Leo without installing anything, Leo Playground is your best friend.

![https://play.leo-lang.org/](https://storage.googleapis.com/papyrus_images/586315f042198189b1a44f9aa62f40eea5724c2c25887f5ec24b81b557b68d63.png)

https://play.leo-lang.org/

Leo Playground is a web-based IDE with:

*   Code editor
    
*   Compiler integration
    
*   GitHub project support
    
*   Online proof generation and simulation
    

Note: Generating transactions may be slow in-browser due to the intensity of ZK computations.

[https://docs.leo-lang.org/getting\_started/ide](https://docs.leo-lang.org/getting_started/ide)

**4\. Editor plugins for Leo.** If you're working in your favorite IDE, Leo’s got you covered:

**VS Code:**

*   Install from Marketplace: `aleohq.leo-extension`
    
*   Once installed, Leo syntax highlighting, compiler feedback, and hover hints work out of the box.
    

**Sublime Text:**

*   Install LSP and LSP-leo via Package Control
    
*   Restart and set color scheme:_Settings > Select Color Scheme... > LSP-leo_
    

**IntelliJ IDEA:**

*   Install Leo plugin via Marketplace
    
*   Works best with Aleo smart contract syntax and local compilation
    

[https://www.jetbrains.com/idea/download/](https://www.jetbrains.com/idea/download/)

**Final thoughts.** Aleo offers a complete set of tools for both low-level and high-level development. You can use snarkVM to write and simulate Aleo Instructions, or get started faster with Leo and Leo Playground.

Whatever your approach, privacy is built in.

Now it’s your turn. Create a project, write a function, and watch zero-knowledge magic unfold.

[Subscribe](null)

_To know more about Aleo, join now!_

> *   _Aleo_ [_Twitter_](https://twitter.com/aleohq)
>     
> *   _Aleo_ [_Discord_](https://discord.gg/aleo)
>     
> *   _Aleo_ [_Website_](https://www.aleo.org/)
>     
> *   _List of_ [_Aleo and Leo code and resourses_](https://github.com/howardwu/awesome-aleo#%EF%B8%8F-a-curated-list-of-aleo--leo-code-and-resources-%EF%B8%8F)
>     

Prepared by Colliseum

---

*Originally published on [Colliseum](https://paragraph.com/@colliseum/authoring-private-aleo-programs-development-tools-you-need)*
