Skip to content

Water-Run/yaca

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

6 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

YACA - Yet Another Coding Agent

中文

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__ is yaca's temporary directory. You may add it to your .gitignore.

Installation

yaca is published on PyPi. Install it using pip or pipx:

pipx install yaca

Verify the installation:

yaca --version

Basic Operations

yaca 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 with plan.
  • implement: Implement a feature. Recommended to use in conjunction with plan.
  • 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/item
  • get: get/retrieve a value/item
  • unset: unset/clear a value/item
  • drop: discard a value/item

Built-in Third-party Tools

  • pmc: A code-packaging tool for building LLM context.
  • treepp: A much better Windows tree command.

Contributors

Languages