https://github.com/chandralegend/vibelang
VibeLang is a programming language designed to seamlessly integrate with Large Language Models (LLMs) through native prompt blocks.
https://github.com/chandralegend/vibelang
c openai programming-language vibe-coding vibelang
Last synced: 7 months ago
JSON representation
VibeLang is a programming language designed to seamlessly integrate with Large Language Models (LLMs) through native prompt blocks.
- Host: GitHub
- URL: https://github.com/chandralegend/vibelang
- Owner: chandralegend
- Created: 2025-03-27T19:40:50.000Z (7 months ago)
- Default Branch: main
- Last Pushed: 2025-03-28T20:24:53.000Z (7 months ago)
- Last Synced: 2025-03-28T20:33:34.469Z (7 months ago)
- Topics: c, openai, programming-language, vibe-coding, vibelang
- Language: C
- Homepage: https://chandralegend.github.io/vibelang/
- Size: 178 KB
- Stars: 0
- Watchers: 1
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- Contributing: CONTRIBUTING.md
Awesome Lists containing this project
README
[](https://github.com/chandralegend/vibelang/actions/workflows/tests.yml)
[](https://opensource.org/licenses/MIT)
[](https://github.com/chandralegend/vibelang)
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.
## Project Status
- ✅ 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
## Documentation
The API reference and developer documentation are available [Here](https://chandralegend.github.io/vibelang/).
You can also generate the documentation locally using:
```bash
make docs
```
And view it by running:
```bash
make serve-docs
```
## Features
- Statically typed language with semantic meaning support
- Direct integration with LLM providers
- Natural language prompt templates
- Type-safe API for C and Python
## Runtime Library
The VibeLang runtime provides:
1. **LLM Connection**: Connect to various LLM providers (currently supports OpenAI)
2. **Prompt Execution**: Send prompts to LLMs with automatic variable substitution
3. **Module Loading**: Dynamically load and execute compiled VibeLang modules
### Configuration
LLM settings can be configured in a `vibeconfig.json` file:
```json
{
"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 access
- `VIBELANG_API_KEY` - Generic API key for any provider
## Getting Started
### Prerequisites
- C compiler (GCC or Clang)
- CMake 3.10+
- libcurl and cJSON development libraries
### Installation
```bash
git clone https://github.com/chandralegend/vibelang.git
cd vibelang
mkdir build && cd build
cmake ..
make
sudo make install
```
### Writing Your First VibeLang Program
Create a file named `weather.vibe`:
```
type Temperature = Meaning("temperature in Celsius");
type Forecast = Meaning("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:
```bash
vibec weather.vibe
gcc -o weather_app weather_app.c -lvibelang
./weather_app
```
## Known Issues
- Function overloading is not yet supported
- Limited error reporting from LLM providers
- No streaming support for LLM responses yet
## License
This project is licensed under the MIT License - see the LICENSE file for details.