Skip to content

Lama2: Free, Lightweight & Collaborative API Client

Build Test Go Report Card

Hexmos Lama2 - Plain-Text Powered REST API Client for Teams | Product Hunt

The Problem

Most engineering teams have trouble collaborating on APIs or end up paying too much for Postman/Insomnia. Our 100% FOSS product Lama2 helps your team collaborate on APIs for free based on git, so that you can save money and avoid friction.

About

Lama2 is a Plain-Text powered REST API client & manager built for serious engineering teams. Lama2 specifies the .l2 syntax for describing APIs, and implements a CLI to execute .l2 files. Engineers collaborate on .l2 files using version control. Lama2 integrates nicely with IDEs and text-editors as well. Think of Lama2 as Markdown for APIs.

Benefits

  1. Plain-Text files: Store APIs in the Plain-Text .l2 API files. Simple and human-friendly syntax. Learn basics within minutes!
  2. Simple CLI: Launch the CLI tool l2 on API files to make REST API requests.
  3. Editor support: Invoke Lama2 from your favorite text editor or IDE. Helpful documentation and tool support to build editor extensions included.
  4. Longevity & track-ability: Commit .l2 files to git or other version control for long life & change tracking.
  5. Collaboration: Share API repo with teammates and colleagues to collaborate
  6. Code generation: Convert l2 API definitions into your preferred language/library, be it Python, Javascript, Java or many other options.
  7. Powerful chaining: Chain multiple l2 requests through embedded Javascript blocks
  8. Documentation: Explore examples, how-tos, explanations, references, FAQ/RAQs, and diagrams. Documentation is a priority, so that you never have to get lost.
  9. Extensibility: .l2 syntax is implemented as a recursive descent parser, based on a formal grammar. Dig into details and implement new syntax (ex: to support websockets)

Tip

Coming from postman? Let Lama2 help you convert Postman data dumps into a nice Plain-Text Lama2 repo.

Terminal Demo: A POST request

basic_post.l2:

POST
https://httpbin.org/post
{
    "hello": "world"
}

---

_METADATA={
    "api_name": "Basic POST",
    "sample_response": {
        "args": {},
        "data": "{\"hello\":\"world\"}",
        "files": {},
        "form": {},
        "headers": {
            "Accept": "*/*",
            "Accept-Encoding": "gzip, deflate",
            "Content-Length": "17",
            "Content-Type": "application/json",
            "Host": "httpbin.org",
            "User-Agent": "python-requests/2.25.1",
            "X-Amzn-Trace-Id": "Root=1-6686d0e6-336395f75a7f8a8b474a7563"
        },
        "json": {
            "hello": "world"
        },
        "origin": "20.235.244.147",
        "url": "https://httpbin.org/post"
    }
}

Execute:

l2 basic_post.l2

VSCode Demo: The same POST request

Community and Support

  1. Full documentation @hexmos.com/lama2
  2. Report issues and propose improvements at Github issues
  3. Discuss with the community at Discord