Prompt-driven backend framework. Replace REST endpoints with natural language.
pip install vibeserverfrom vibeserver import VibeServer
vs = VibeServer()
@vs.tool("greet", description="Greet a user by name")
def greet(name: str) -> dict:
return {"message": f"Hello, {name}!"}
@vs.tool("calculate", description="Evaluate a math expression")
def calculate(expression: str) -> dict:
result = eval(expression)
return {"result": result}
@vs.tool("fetch_weather", description="Get weather for a city")
def fetch_weather(city: str) -> dict:
return {"city": city, "temp": "22°C", "condition": "sunny"}
vs.run() # http://localhost:8000Then call it:
curl -X POST http://localhost:8000/ -H "Content-Type: application/json" -d '{"input": "greet Alice"}'
# → {"message": "Hello, Alice!"}- Send natural language:
POST /with{"input": "greet Alice"} - LLM plans execution:
{steps: [{action: "greet", params: {name: "Alice"}}]} - Tool executes and returns structured JSON
- Repeat calls match the Intent Graph — no LLM needed
Persistent NL→plan cache with n-gram fingerprinting and cosine similarity. No embedding model needed. Repeat queries skip the LLM entirely with ~0ms latency.
| Tool | Description |
|---|---|
compute |
Transform data (uppercase, lowercase, json_parse, sum, length) |
create_record |
Create a database record |
search |
Search records by type |
update_record |
Update a record |
delete_record |
Delete a record |
get_user |
Look up user by ID |
auth |
Verify API keys |
list_users |
List all users (admin) |
stats |
System statistics |
VIBESERVER_MODEL=openai/cmd/deepseek/deepseek-v4-pro
VIBESERVER_API_BASE=http://localhost:20128/v1
VIBESERVER_API_KEY=sk-xxx
VIBESERVER_DB_PATH=vibeserver.db
VIBESERVER_LOG_LEVEL=INFOdocker compose up- PyPI: https://pypi.org/project/vibeserver/0.3.0/
- GitHub: https://github.com/Ifarra/VibeServer
- Docs: https://github.com/Ifarra/VibeServer/tree/main/docs
MIT
