Powerful AI โ built for you, built with you, built securely with Python. Local-first personal AI assistant.
Project description
๐ฆ๐ค DuckClaw
Powerful AI โ built for you, built with you, built securely in Python
Local-first personal AI assistant with a 4-tier permission engine.
AI assistance you can actually trust โ because it works with you, not around you.
The Problem
Local AI assistants are powerful โ but most of them are built to be capable first and safe second.
- ๐ Broad permissions by default โ agents act before asking
- ๐ฆ No skill verification โ third-party extensions run with full process privileges
- ๐ธ $30โ150/month in API costs with no controls
- ๐งฉ Complex setup โ Node.js, build tools, platform-specific dependencies
- ๐ต๏ธ No audit trail โ you can't see what it did or why
- ๐ Prompt injection โ web pages and emails can manipulate your assistant
The Solution
pip install duckclaw
duckclaw setup # 2-minute guided wizard
duckclaw start # opens localhost:8741
That's it. No Node.js. No WSL2. No build tools.
What's Different
| Common Problem | DuckClaw Solution |
|---|---|
| Agents act without asking | 4-tier Permission Engine (SAFE / NOTIFY / ASK / BLOCK) |
| No preview before actions | Action Preview Mode โ see exactly what happens before it happens |
| No audit trail | Full audit log โ every action logged, searchable, exportable |
| Unverified third-party skills | Sandboxed skill execution + SHA-256 integrity verification |
| Prompt injection vulnerable | Context isolation โ trusted instructions vs untrusted data |
| Complex multi-tool setup | Pure Python โ pip install and done |
| No cost controls | Cost tracking per conversation, budget alerts |
Quick Start
# Create Virtual Environment
python3 -m venv <virtual-environment-name>
# Activate Environment
# ubuntu and macOD
source <virtual-environment-name>/bin/activate
# or
# Windows
sh ./<virtual-environment-name>/bin/Activate.sh
# Install
pip install duckclaw
# Configure (guided wizard)
duckclaw setup
# Start
duckclaw start
# Or just chat in terminal
duckclaw chat
Requirements:
Python 3.11+. That's it.
create virtual environment for better keeping all python module in one environment that will not effect other packages
Permission System
Every action DuckClaw takes is classified into one of four tiers:
| Tier | Color | Examples | Behavior |
|---|---|---|---|
| SAFE | ๐ข | Answer questions, read memory | Auto-approved, silent |
| NOTIFY | ๐ต | Browse web, read files | Auto-approved, user informed |
| ASK | ๐ก | Screenshots, send messages, run commands | Requires explicit approval |
| BLOCK | ๐ด | Delete system files, access credentials | Never allowed |
You: "Take a screenshot and analyze it"
DuckClaw: โ ๏ธ Permission Required
Action: Take a screenshot of your screen
Risk: ๐ข Low | โ Reversible
[โ Deny] [โ Approve]
Architecture
Core
โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
โ DUCKCLAW CORE โ
โ โ
โ โโโโโโโโโโโโโโโ โโโโโโโโโโโโโโโโโโโโ โโโโโโโโโโโโโโโโโโโ โ
โ โ llm/ โ โ memory/ โ โ permissions/ โ โ
โ โ LiteLLM โ โ SQLite (facts) โ โ Engine 4-Tier โ โ
โ โ Router โ โ ChromaDB โ โ + Audit Log โ โ
โ โ 100+ mdls โ โ (vectors) โ โ + Action โ โ
โ โ cost track โ โ Extractor โ โ Preview โ โ
โ โโโโโโโโฌโโโโโโโ โโโโโโโโโโฌโโโโโโโโโโ โโโโโโโโโโฌโโโโโโโโโ โ
โ โ โ โ โ
โ โโโโโโโโดโโโโโโโโโโโโโโโโโโโโดโโโโโโโโโโโโโโโโโโโโโโโดโโโโโโโโ โ
โ โ core/Orchestrator (FastAPI) โ โ
โ โโโโโฌโโโโโโโโโโโฌโโโโโโโโโโโโโโโฌโโโโโโโโโโโโโฌโโโโโโโโโโโโโโโ โ
โ โ โ โ โ โ
โ โโโโโโดโโโโ โโโโโโดโโโโโ โโโโโโโโดโโโโโโโ โโโโโดโโโโโโโโโโโโโ โ
โ โbridges/โ โskills/ โ โ agent/ โ โ security/ โ โ
โ โTelegramโ โFile Mgr โ โ Web Agent โ โ Context โ โ
โ โDiscord โ โWeb Srch โ โ (Playwrightโ โ Isolation โ โ
โ โ โ โShell Runโ โ + Screen / โ โ Prompt โ โ
โ โ โ โSchedulerโ โ Camera) โ โ Injection Def. โ โ
โ โโโโโโโโโโ โโโโโโโโโโโ โโโโโโโโโโโโโโโ โโโโโโโโโโโโโโโโโโ โ
โ โ
โ โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ โ
โ โ dashboard/ (FastAPI + Jinja2) @ :8741 โ โ
โ โ Chat ยท Memory ยท Logs ยท Database ยท Settings โ โ
โ โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ โ
โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
Dashboard at localhost:8741 โ Chat, Memory, Audit Log, Settings.
DuckClaw Labs Ecosystem
โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
โ DuckClawLabs โ
โ โ
โ โโโโโโโโโโโโโโโโโโโโโโโโโโโโโ โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ โ
โ โ Outside Skills โ โ DuckClawSkills โ โ
โ โ (from GitHub) โ โ Built by DuckClaw Team โ โ
โ โ โ โ โ โ
โ โ Any developer builds a โ โ Official, verified skills โ โ
โ โ skill in their own repo โ โ maintained by DuckClaw Labs โ โ
โ โโโโโโโโโโโโโโฌโโโโโโโโโโโโโโโ โโโโโโโโโโโโโโโโฌโโโโโโโโโโโโโโโโ โ
โ โ โ โ
โ โโโโโโโโโโโโโโโโโโโโฌโโโโโโโโโโโโโโโโโโโ โ
โ โผ โ
โ โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ โ
โ โ DuckClawHub โ โ
โ โ Central registry โ manifests only โ โ
โ โ Browse / search / install skills โ โ
โ โ SHA-256 verification on publish โ โ
โ โโโโโโโโโโโโโโโโโโโโโฌโโโโโโโโโโโโโโโโโโโโ โ
โ โ โ
โ duckclaw skill install <name> โ
โ โผ โ
โ โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ โ
โ โ DuckClaw(Core) โ โ
โ โ Core agent โ installs skill, โ โ
โ โ registers actions into ChromaDB, โ โ
โ โ permission engine gates execution โ โ
โ โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ โ
โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
STATUS
DuckClawLabs
Outside Skills (From Github) - TODO
DuckClawSkills - InProgress
DuckClawHub - TODO
DuckClaw (Core) - In Progress
Vision
Per-Action Knowledge Base
Skills register one ChromaDB row per action (not per skill). This gives precise semantic retrieval:
User: "copy report.pdf to /backup/"
โ ChromaDB returns: file_manager.copy โ direct hit
โ Permission engine: ASK tier โ user approves
โ Action executes + audit log entry written
Install official or community skills:
duckclaw skill install file_manager # official
duckclaw skill install github:user/my-skill # community
DuckClawHub โ Not just another skill registry
ClawHub (OpenClaw) already exists. DuckClawHub is built for a different user.
ClawHub = npm for agent tools. Developers sharing dev tools. No permission model. No audit. Requires Node.js.
DuckClawHub = App Store for trusted AI actions. You see exactly what a skill can do before it does anything.
Trust Score per skill
file_manager v1.2 โ
Trust: 94/100
โ
file_manager.read โ SAFE (auto-allowed)
โ ๏ธ file_manager.write โ NOTIFY (you'll be told)
๐ shell_runner.run โ ASK (always asks first)
Permission Preview before install
duckclaw skill preview file_manager
Before installing, this skill will need:
โ Read files from your disk [SAFE โ auto allowed]
โ Write files to your disk [NOTIFY โ you'll be told]
โ Run shell commands [ASK โ always asks first]
Install anyway? (y/n)
Skill Recipes โ outcomes, not just tools
duckclaw recipe install research-and-save
# Uses: web_search.search โ file_manager.write
# Trust: 87/100 | Permissions: SAFE + NOTIFY
Config
DuckClaw uses ~/.duckclaw/duckclaw.yaml. See duckclaw.yaml.example for all options.
Core Principles
- Safe by default โ trustworthy out of the box, not after hours of config
- Transparent always โ audit log shows everything the agent did and why
- Local first โ your data stays on your machine; cloud is opt-in
- Python simple โ one language, one install command, no build tools
- Permission, not forgiveness โ ask before acting, not apologize after
- Quality over quantity โ 5 secure skills beat 13,700 unvetted ones
Feature Coverage
14 fully implemented ยท 6 partial ยท 6 post-MVP
๐๏ธ Vision & Screen
| Feature | Status | Notes | File |
|---|---|---|---|
| Screenshot Capture | โ | ASK-tier approval + LLM vision analysis | skills/screen_capture.py |
| Camera Capture | โ ๏ธ | Photo only โ video capture not yet supported | skills/camera.py |
| Media Understanding (Vision) | โ ๏ธ | Images sent to cloud LLM โ no local PII scan or LLaVA yet | skills/screen_capture.py |
๐ Browser & Web
| Feature | Status | Notes | File |
|---|---|---|---|
| Browser Automation | โ | Playwright: navigate, click, fill forms, extract text, screenshot | skills/web_browser.py |
| Web Search | โ ๏ธ | DuckDuckGo (free) โ Brave Search / SearXNG not yet added | skills/web_search.py |
๐ฌ Messaging
| Feature | Status | Notes | File |
|---|---|---|---|
| Telegram | โ | Full + inline approve/deny buttons | bridges/telegram_bridge.py |
| Discord | โ | Slash commands + button components for approvals | bridges/discord_bridge.py |
| โ | Post-MVP (Month 2) | โ | |
| Slack / Signal / iMessage / Teams | โ | Post-MVP | โ |
๐ง Intelligence & Memory
| Feature | Status | Notes | File |
|---|---|---|---|
| Persistent Memory | โ | SQLite facts + ChromaDB semantic search, viewable/deletable in dashboard | memory/store.py |
| Multi-Model Support | โ ๏ธ | 100+ models via LiteLLM, cost tracking โ smart routing by task complexity not yet added | llm/router.py |
| Context Engine (Plugin Interface) | โ | Lifecycle hooks (bootstrap, ingest, compact) โ Post-MVP (Month 2) | โ |
โ๏ธ Automation & Skills
| Feature | Status | Notes | File |
|---|---|---|---|
| Shell Execution | โ | Blocklist for dangerous commands + NOTIFY/ASK tiers | skills/shell_runner.py |
| File System Access | โ | Scoped allowlist + hardcoded credential blocklist | skills/file_manager.py |
| Proactive Background Tasks | โ | APScheduler: cron, reminders, morning briefs โ defaults to NOTIFY | skills/scheduler.py |
| Skill & Plugin System | โ ๏ธ | SHA-256 verify + permission declarations โ no external marketplace yet | skills/registry.py |
| Code Sandbox (Python/JS exec) | โ | Sprint 4 candidate | โ |
| Self-Improving / Skill Creation | โ | Post-MVP (Month 2) โ draft-state review flow planned | โ |
๐๏ธ Voice
| Feature | Status | Notes | File |
|---|---|---|---|
| Voice Mode | โ | Post-MVP (Month 3) โ Whisper STT + Piper TTS planned | โ |
๐ก๏ธ Security & Trust
| Feature | Status | Notes | File |
|---|---|---|---|
| Permission Engine (4-tier) | โ | SAFE/NOTIFY/ASK/BLOCK โ per-skill, configurable, conservative defaults | permissions/engine.py |
| Audit Preview Mode | โ | ActionPreview before every ASK action โ approve/deny on all platforms | permissions/engine.py |
| Full Audit Log | โ | Every action logged, searchable, filterable, exportable JSON/CSV | permissions/engine.py |
| Prompt Injection Defense | โ | Context isolation + dual-pass output scanning + audit logging of signals | security/context_isolation.py |
| Sandboxed Skill Execution | โ ๏ธ | SHA-256 + permissions declared โ OS-level subprocess isolation not yet enforced | skills/base.py |
| Web Dashboard | โ | Chat, memory, audit log, settings @ localhost:8741 | dashboard/ |
| One Command Install | โ | pip install duckclaw && duckclaw start โ pure Python, no Node.js |
pyproject.toml |
Contributing
DuckClaw is Apache licensed and built in public. Issues, PRs, and ideas welcome.
โญ Star this repo if you believe AI assistants should work as per user permissions
Project details
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file duckclaw-0.1.7.tar.gz.
File metadata
- Download URL: duckclaw-0.1.7.tar.gz
- Upload date:
- Size: 149.8 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.10.12
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
facdf4e7527ed11b54192debb68d9db2746ead425940607bdc07444054feeeb9
|
|
| MD5 |
21f4f8a6b0062a31e157b140f188142d
|
|
| BLAKE2b-256 |
bf0ffef6ce07a5cc6f30375fd0e9d576b9e86fc024029280665091a76b25d0a6
|
File details
Details for the file duckclaw-0.1.7-py3-none-any.whl.
File metadata
- Download URL: duckclaw-0.1.7-py3-none-any.whl
- Upload date:
- Size: 159.0 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.10.12
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
ea7ee4937d0a9dd8473976eb54802617b7983d23e263936416feb5ba45d0a62c
|
|
| MD5 |
472e8b49188c8dca76917759b846825b
|
|
| BLAKE2b-256 |
f01cd982201fa1ba0e6b8aed40230652f2e07a5d15668c3f890beb40ce87d06e
|