cya — console-native assistant for local work
cya lets you express intent in natural language from your terminal and receive
safe, explainable, context-aware help.
It is the CLI surface for the capabilities domain. It owns orchestration,
the user experience, and the safety layer. It talks to llm-connect only
through a stable adapter boundary and keeps all memory under explicit
user-controlled ports (implemented by phase-memory).
Status
This is the first narrow MVP slice (CYA-WP-0001). The tool is already
usable after pip install -e .:
cya "your request in plain English"cya --explain-context "..."— shows exactly what local context would be sent- Automatic rule-based risk classification with mandatory confirmation for anything destructive, privileged, mass-edit, or network-affecting
- All LLM interaction flows through a documented
LLMAdapterseam (currently a deterministic fake; ready for realllm-connect)
Installation (development)
git clone <this-repo>
cd can-you-assist
pip install -e .
cya --help
Usage examples
# Normal request (safe path)
cya "show me the recent git history for this repo"
# Risky request — will show classification + require explicit confirmation
cya "delete every log file older than 30 days in this tree"
# See exactly what context would be collected and sent
cya --explain-context "explain the changes in the last commit"
The output includes a structured suggestion, rationale, and (when relevant) a clear preview + confirmation prompt. Nothing executes without your explicit yes.
Safety (core product behavior)
- Genuine rule-based assessment is the primary mechanism.
- Results are available to the model.
- Anything above "safe" produces a preview and blocks until you confirm in the launching terminal.
- No autonomous execution in this slice.
See the risk classifier tests and workplan T03 for the exact rules and invariants.
Architecture & boundaries (important)
can-you-assist(this repo): CLI, context collection, safety, orchestration.llm-connect: Provider access, config, token counting, structured responses. All interaction goes throughcya/llm/adapter.py(LLMAdapterProtocol).phase-memory: Durable, user-controlled memory. This slice has only strictly minimal explicit no-op ports (seecya/memory/__init__.py).
See workplans/CYA-WP-0001-console-native-mvp.md for the full task breakdown,
decisions, and integration guide.
Development
pip install -e .
pytest tests/ -q
cya "..." # manual verification
License
MIT (see LICENSE).
Workplan & coordination
- Workplan:
workplans/CYA-WP-0001-console-native-mvp.md - State Hub workstream:
repo-integration-can-you-assist - Operator reminder after changes:
cd ~/state-hub && make fix-consistency REPO=can-you-assist