yaca is a simple, semi-automatic, command-line Coding Agent open-sourced under the AGPL license. Semi-automatic means that, unlike fully autonomous Coding Agents such as OpenCode and ClaudeCode — which complete tasks from scratch with no human input — yaca operates through a REPL-style conversational interaction, requiring more involvement from you to complete more granular, focused parts of a task.
The development of yaca stems from personal Vibe Coding experience. The motivation behind its creation is that fully automated Coding Agents tend to consume a large number of conversation turns on parts unrelated to the current task — such as problem analysis and toolchain invocations. This leads to several times more token consumption, while squeezing the context window, and the completed tasks often don't align that well with what you actually need.
yaca is built on the belief that: more human involvement, less token consumption, better task completion.
__yaca__isyaca's temporary directory. You may add it to your.gitignore.
yaca is published on PyPi. Install it using pip or pipx:
pipx install yacaVerify the installation:
yaca --versionyaca categorizes LLM-invocation operations into the following types:
analyze: Analyze code — for example, understanding the role of a class in the codebase, or figuring out what algorithm a certain process uses.debug: Fix bugs. Recommended to use in conjunction withplan.implement: Implement a feature. Recommended to use in conjunction withplan.plan: Generate a plan — for example, a plan for implementing a feature or fixing a bug.operate: Perform a standalone operation, such as setting up and configuring an environment.
yaca also supports the following commands:
set: set a value/itemget: get/retrieve a value/itemunset: unset/clear a value/itemdrop: discard a value/item