VibeLang is a statically-typed language designed for natural language interactions with LLM models. It provides a type-safe way to integrate AI capabilities into applications.
- ✅ Milestone 1: Core Compiler Development
- ✅ Milestone 2: Code Generation & C API Exposure
- ✅ Milestone 3: Runtime Library & LLM Integration
- 🔄 Milestone 4: Cross-Language Support and Wrappers
- 🔄 Milestone 5: Comprehensive Testing and Documentation
The API reference and developer documentation are available Here.
You can also generate the documentation locally using:
make docs
And view it by running:
make serve-docs
- Statically typed language with semantic meaning support
- Direct integration with LLM providers
- Natural language prompt templates
- Type-safe API for C and Python
The VibeLang runtime provides:
- LLM Connection: Connect to various LLM providers (currently supports OpenAI)
- Prompt Execution: Send prompts to LLMs with automatic variable substitution
- Module Loading: Dynamically load and execute compiled VibeLang modules
LLM settings can be configured in a vibeconfig.json
file:
{
"global": {
"provider": "OpenAI",
"api_key": "YOUR_API_KEY_HERE",
"default_params": {
"model": "gpt-3.5-turbo",
"temperature": 0.7,
"max_tokens": 150
}
}
}
API keys can also be provided via environment variables:
OPENAI_API_KEY
- For OpenAI API accessVIBELANG_API_KEY
- Generic API key for any provider
- C compiler (GCC or Clang)
- CMake 3.10+
- libcurl and cJSON development libraries
git clone https://github.com/chandralegend/vibelang.git
cd vibelang
mkdir build && cd build
cmake ..
make
sudo make install
Create a file named weather.vibe
:
type Temperature = Meaning<Int>("temperature in Celsius");
type Forecast = Meaning<String>("weather forecast description");
fn getTemperature(city: String) -> Temperature {
prompt "What is the current temperature in {city} in Celsius?";
}
fn getForecast(city: String, day: String) -> Forecast {
prompt "Provide a brief weather forecast for {city} on {day}.";
}
Compile and use it:
vibec weather.vibe
gcc -o weather_app weather_app.c -lvibelang
./weather_app
- Function overloading is not yet supported
- Limited error reporting from LLM providers
- No streaming support for LLM responses yet
This project is licensed under the MIT License - see the LICENSE file for details.