CAWA
Context-Aware Workspace Automation
Install / Use
/learn @mmiraly/CAWAREADME
CAWA 🐙
Context-Aware Workspace Automation
cawa (Context-Aware Workspace Automation) is a native, privacy-first tool for
defining per-project workflows. Stop cluttering your global shell history with
project-specific one-liners.
cs (Context Switcher) is the command-line interface for cawa.
Define local scripts that only exist where they matter.
Features
- 📂 Workspace-Isolated: Workflows live in
.cawa_cfg.jsonright next to your code. - 🛡️ Context-First: Commands only execute when you are effectively "in" the project.
- 🚀 Native Speed: Built in Rust. Zero dependencies. Avg execution overhead < 5ms.
- ⚡ Parallel Runner: Batch operations side-by-side with
-p. - 🖥️ Interactive TUI: Visual alias selector with
cs tui. - 🔔 Notifications: Get a desktop ping when long-running tasks finish with
--notify. - ⛓️ Shell Native: Pipes, chaining (
&&), and environment variables work as expected. - 🎭 Flexible Identity: Rename the binary to
do,run, ortaskand it adapts automatically. - ⏱️ Performance Metrics: Optional timing for your heavy build scripts.
Installation
Homebrew (macOS)
brew tap mmiraly/tap
brew install cawa
One-line Installer (Linux & macOS)
curl -fsSL https://raw.githubusercontent.com/mmiraly/cawa/main/scripts/install.sh | bash
Pre-compiled Binary
- Go to the Releases page.
- Download the archive for your OS/Architecture (e.g.,
cs-v1.0.0-darwin-arm64.tar.gz). - Extract and move to your path:
tar -xzf cs-*.tar.gz sudo mv cs /usr/local/bin/
Build from Source
Requirements: Rust Toolchain (cargo).
Option A: Install via Cargo (Recommended)
git clone https://github.com/mmiraly/cawa.git
cd cawa
cargo install --path .
This installs the binary to ~/.cargo/bin, which must be in your $PATH.
Option B: Manual Build
git clone https://github.com/mmiraly/cawa.git
cd cawa
cargo build --release
sudo cp target/release/cs /usr/local/bin/
Usage
1. Defining Workflows
# Define a 'ship' workflow
cs add ship "cargo fmt && cargo test && git push"
# Create a 'wip' checkpoint
cs add wip "git add . && git commit -m 'wip'"
# Run multiple test suites in parallel
cs add -p quality "cargo test --lib" "npm run test:e2e"
2. Running Workflows
# Just run it
cs ship
# Pass arguments (passed through to the underlying command)
cs ship -- --force
3. Management
cs list
cs remove ship
4. Interactive Mode (TUI)
Don't remember your alias names? Launch the interactive selector:
cs tui
- Up/Down: Navigate
- Enter: Execute
- Esc/q: Exit
5. Notifications
Get a desktop notification when a command finishes (success or fail). Great for long builds!
# Works with any alias
cs test --notify
# Works with parallel commands too
cs build --notify
Configuration
The config lives in .cawa_cfg.json. It is meaningful to commit this file to
git so your team shares the same aliases!
{
"enable_timing": true,
"aliases": {
"release": "./scripts/release.sh"
}
}
Contributing
We welcome contributions!
- Fork the repo.
- Create feature branch (
git checkout -b feature/cool-thing). - Commit changes (
git commit -m 'Add cool thing'). - Push to branch.
- Open a Pull Request.
Compiling Locally
git clone https://github.com/mmiraly/cawa.git
cd cawa
cargo build
./target/debug/cs --help
License
Copyright (C) 2026
This program is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version.
See LICENSE for details.
Related Skills
node-connect
349.2kDiagnose OpenClaw node connection and pairing failures for Android, iOS, and macOS companion apps
frontend-design
109.5kCreate distinctive, production-grade frontend interfaces with high design quality. Use this skill when the user asks to build web components, pages, or applications. Generates creative, polished code that avoids generic AI aesthetics.
openai-whisper-api
349.2kTranscribe audio via OpenAI Audio Transcriptions API (Whisper).
qqbot-media
349.2kQQBot 富媒体收发能力。使用 <qqmedia> 标签,系统根据文件扩展名自动识别类型(图片/语音/视频/文件)。
