minimalist/toy terminal agent harness written in bash
개요
tiny terminal agent, written with simplicity and composability in mind. https://github.com/user-attachments/assets/f53c96da-043c-45af-9b12-0eb7211fef16 - --raw plain output (no markdown rendering), exits after one completion — good for piping: cmd1 | chat --raw summarize > out.md - --free skip tool permission prompts Clone the repo and alias agent.sh to a command name of your preference Put your provider API keys (if any) in .env, see .env.example Pick a provider from providers/ with the PROVIDER env var (default: opencode-go) - /state, /s opens the state which is the json sent to the api in an editor, to inspect it or edit it - /continue, /c sends the current state to the API directly - /logs, /l displays logs, which are either outputs of executed tools or reasoning tokens - /model, /m change used model All skills must be placed in ~/.agents/skills/ (customizable via the SKILL_PATH env var) in the standard SKILL.md format, see ./tools/Skill.sh.
README
🪄 agent.sh
tiny terminal agent, written with simplicity and composability in mind.
https://github.com/user-attachments/assets/f53c96da-043c-45af-9b12-0eb7211fef16
Usage
cmd1 | chat what should i look for in this
chat "what's a cyclic endomorphism"
chat
Flags:
--rawplain output (no markdown rendering), exits after one completion — good for piping:cmd1 | chat --raw summarize > out.md--freeskip tool permission prompts
Install
Make sure to have uv, jq, rg, bat, gum and html2text installed
Clone the repo and alias agent.sh to a command name of your preference
alias j='/path/to/agent.sh'
Put your provider API keys (if any) in .env, see .env.example
Pick a provider from providers/ with the PROVIDER env var (default: opencode-go)
PROVIDER=ollama j
Current Capabilities
| Tool | Description |
|---|---|
| Glob | Find files by pattern |
| Grep | Search inside files |
| Read | Read file |
| Edit | Modify file |
| Write | Create or append files |
| Bash | Run shell commands |
| WebSearch | Search the web via Exa AI |
| WebFetch | Fetch URLs with curl and html2text |
| Skill | Use specialized skills |
| Question | Ask user for input/choices |
Slash Commands
/state,/sopens the state which is the json sent to the api in an editor, to inspect it or edit it/continue,/csends the current state to the API directly/logs,/ldisplays logs, which are either outputs of executed tools or reasoning tokens/model,/mchange used model
Add Capabilities
Skills
All skills must be placed in ~/.agents/skills/ (customizable via the SKILL_PATH env var) in the standard SKILL.md format, see ./tools/Skill.sh.
Tools
Tools are as simple as Bash functions. You can check tools/ directory for
reference, or just ask agent.sh to create it for you!
Contributions
All contributions are welcome !
Credits
Thanks to opencode - borrowed a lot of cool ideas from it!
추천 도구
다른 키워드를 입력하거나 필터를 제거해 보세요.
설치
npx skillfish add aziz0x00/agent.sh