JunoStack is a custom programming language designed to act as an intelligent, modular assistant for developers. Inspired by RooCode but uniquely built from the ground up, JunoStack supports API key declarations, multi-model routing, assistant roles (modes), and contextual AI workflows using locally hosted models (e.g., Ollama).
- ✅ API Endpoint Setup — Define where models are served (e.g.,
ollama) - ✅ Mode Assignment — Assign tasks/roles to specific models (with support for friendly aliases)
- ✅ Mode Instructions — Describe behavior per mode (e.g.,
"debug this") - ✅ Profile Groups — Group modes into named workflows like
production,blueprint, ormaintenance(WIP) - ✅ Dynamic Context Switching — Use
currentModeorcallMode(...)to invoke AI partners - ✅ Streaming Ollama Responses —
callMode(...)supports live response chunking from Ollama
tokenizer.py: token recognition for all language constructsparser.py: parses all declarations (apikey,mode,profile, etc.)evaluator.py: evaluates instructions, routes prompts, and invokes Ollama with stream supportrunner.py: REPL + script executortest_modes2.t: sample demo script for JunoStack's full features
apikey ollama = "http://localhost:11434";
mode coder = "qwen_4b";
modeInstructions["coder"] = "generate code based on user prompts";
mode debug = "gemma_4b";
modeInstructions["debug"] = "explain or refactor problematic code";
profile production {
coder,
debug
}
currentProfile = "production"; (WIP)
currentMode = "coder";
callMode("Write a Python function to validate email input.");Friendly model names like qwen_4b, gemma_4b, and mistral_small are mapped internally to:
"qwen_4b"→"qwen3:4b""gemma_4b"→"gemma3:4b""mistral" →"mistral"`
python runner.py test_modes.tThe interpreter will evaluate your .t file and use callMode(...) to send prompts through the appropriate model.
Made by Brandon & Jonah — JunoStack v1.0