Soul Language Logo Soul Language Logo

What is Soul?

Soul is a dynamically typed, object-oriented scripting language designed for the modern automation era. Built with Go, it combines familiar syntax with powerful features specifically tailored for AI-powered automation, web scraping, and system integration.

Why Soul?

AI-First Design

Built-in support for OpenAI, Anthropic, and Gemini models with a unified API

Modern Concurrency

Powerful async/await, channels, and lightweight threads for efficient parallel processing

Rich Standard Library

Everything you need out-of-the-box: HTTP servers, web scraping, databases, and more

Quick Example

GenAI and Automation Example

soul genesis() {
    // Fetch and summarize web content with AI
    browser = Robo.createBrowser()
    page = browser.newPage()
    page.navigate("https://news.ycombinator.com")

    title = page.findElement("title").getText()

    ai = GenAI.chat("openai").model("gpt-3.5-turbo")
    response = ai.invoke("Summarize this title: " + title)

    println(response.text)
    browser.close()
}

Concurrent Processing Example

soul processData(name, value) {
    println("Processing " + name + "...")
    Concurrency.sleep(100)
    return name + " result: " + (value * 2)
}

soul genesis() {
    // Spawn concurrent tasks
    task1 = Concurrency.spawn(processData, "Task A", 10)
    task2 = Concurrency.spawn(processData, "Task B", 20)
    task3 = Concurrency.spawn(processData, "Task C", 30)

    // Wait for all results
    result1 = await task1
    result2 = await task2
    result3 = await task3

    println(result1)
    println(result2)
    println(result3)

    // Use WaitGroup for synchronization
    wg = Concurrency.waitGroup()
    wg.add(2)

    Concurrency.run(soul() {
        println("Background job 1 running")
        Concurrency.sleep(50)
        wg.done()
    })

    Concurrency.run(soul() {
        println("Background job 2 running")
        Concurrency.sleep(75)
        wg.done()
    })

    wg.wait()
    println("All background jobs completed")
}

Get Started

Learn More