Skip to content

Getting started

  1. Install the CLI (Linux):

    Terminal window
    curl -fsSL https://raw.githubusercontent.com/1rowvy/outry/master/install.sh | sh

    The desktop app and other platforms are covered in Installation.

  2. Create a project in your repository:

    Terminal window
    cd my-service
    outry init

    This creates api/env.toml with dev and prod environments and an example request api/health.outry.

  3. Point base at your API in api/env.toml:

    api/env.toml
    default = "dev"
    [env.dev]
    base = "http://localhost:8080"
    [env.prod]
    base = "https://api.example.com"
  4. Write a request. The name comes before the method, the path is appended to base:

    api/users/list.outry
    ListUsers: GET /users {
    query { page: 1 }
    expect {
    status == 200
    body.items.length > 0
    }
    }

    The smallest request is one line: GET /health.

  5. Run it:

    Terminal window
    outry run api/users/list.outry
    outry run ListUsers # by name
    outry run api # every *.outry and *.http under api/, in alphabetical order
    outry run api --env prod # another environment
    ✓ api/users/list.outry ListUsers GET http://localhost:8080/users?page=1 200 OK 12ms 532B
    ✓ status == 200
    ✓ body.items.length > 0

Have a Go service? outry import go . writes a request for every chi, gin or net/http route, and outry check then tells you when the code and the requests drift apart — see Import routes from Go.

Already have .http files? outry convert api/ rewrites them into .outry — see .http files.