A personal assistant agent with customizable personality, memory, and sandboxed tool execution.
- Customizable Personality: Define your assistant's behavior via SOUL.md
- Sessions: JSONL-based conversation history
- Memory: SQLite-backed semantic search for extracted facts
- Multi-LLM Support: Anthropic Claude and OpenAI
- Telegram Integration: Chat with your assistant via Telegram
- Sandboxed Tools: Execute bash commands in Docker containers
- Web Search: Built-in Brave Search integration
Full documentation at https://dcramer.github.io/ash/
make setup # Install deps + prek hooks| Command | Purpose |
|---|---|
make lint |
Run ruff linting and formatting |
make typecheck |
Run ty type checker |
make test |
Run pytest |
make check |
Run all hooks |
Behavior evaluations use LLM-as-judge to test agent responses. They require ANTHROPIC_API_KEY:
uv run pytest evals/ -m eval -vEval cases live in evals/cases/*.yaml. See evals/types.py for the schema.
This project is built with Claude Code. Agent instructions live in CLAUDE.md.
Install required plugins:
claude plugin add getsentry/sentry-skills
claude plugin add anthropics/code-simplifierSkills from getsentry/sentry-skills:
| Skill | Purpose |
|---|---|
/commit |
Create commits with proper attribution |
/create-pr |
Open pull requests |
/find-bugs |
Audit local changes before merging |
/deslop |
Remove AI-generated code slop |
From anthropics/code-simplifier:
| Agent | Purpose |
|---|---|
code-simplifier |
Reduce code complexity and remove over-engineering |
Project-specific skills (in .claude/skills/):
| Skill | Purpose |
|---|---|
/write-spec <feature> |
Create/update a feature spec |
/verify-spec <feature> |
Verify implementation matches spec |
/create-migration |
Database schema changes |
/create-skill <name> |
Create Ash skills in workspace |
MIT