Lama2: Free, Lightweight & Collaborative API Client¶

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¶
- Plain-Text files: Store APIs in the Plain-Text
.l2API files. Simple and human-friendly syntax. Learn basics within minutes! - Simple CLI: Launch the CLI tool
l2on API files to make REST API requests. - Editor support: Invoke Lama2 from your favorite text editor or IDE. Helpful documentation and tool support to build editor extensions included.
- Longevity & track-ability: Commit
.l2files togitor other version control for long life & change tracking. - Collaboration: Share API repo with teammates and colleagues to collaborate
- Code generation: Convert
l2API definitions into your preferred language/library, be it Python, Javascript, Java or many other options. - Powerful chaining: Chain multiple
l2requests through embedded Javascript blocks - Documentation: Explore examples, how-tos, explanations, references, FAQ/RAQs, and diagrams. Documentation is a priority, so that you never have to get lost.
- Extensibility:
.l2syntax is implemented as a recursive descent parser, based on a formal grammar. Dig into details and implement new syntax (ex: to supportwebsockets)
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¶
- Full documentation @hexmos.com/lama2
- Report issues and propose improvements at Github issues
- Discuss with the community at Discord