🦆 Quack Norris - the code savy star 🌟
The harness optimized for SLMs
Quack Norris is a compact agent core optimized for small language models (SLMs). It can be integrated as an Agent Client Protocol (ACP) agent into other agents or UIs or used for custom code as a Python SDK.
🤖 ACP Agent
Quack Norris works with any ACP-compatible client. To use it, install Quack Norris as a command-line tool:
uv tool install quack-norris
# Alternative from source for development
cd quack-norris
uv tool install . --force --reinstall --editable
Create your LLM configuration as described in LLM configuration, then configure your ACP client (e.g. zed) to start:
quack-norris acp [--config FILE]
🧩 Python SDK
Add Quack Norris as an application dependency:
uv add quack-norris
The async agent(...) function is stateless. Your application selects the model and provides exact tool list, history, callbacks, context policy, and optional skill metadata.
from pathlib import Path
from quack_norris.core import LLM, TextOutput, agent
from quack_norris.core.llm import UserMessage
from quack_norris.skills_and_agents import discover_skill_info
from quack_norris.tools import make_native_tools
# Load the configuration (described below)
LLM.setup()
# Implement your own approval logic
async def approve(_call):
return False # deny everything
# Stream outputs or ignore them, your choice
async def handle_output(item):
if isinstance(item, TextOutput):
print(item.text, end="", flush=True)
# Run the agent with tools and skills and await its final response
workspace = Path.cwd()
result = await agent(
model=LLM.default_model() or "ollama/qwen3:14b",
system_prompt="You are a concise coding agent.",
tools=make_native_tools(workspace, skills=True),
chat_history=[UserMessage(content="Review this change")],
on_permission_request=approve,
on_output=handle_output,
context=None,
skills=discover_skill_info(workspace),
)
⚙️ LLM Configuration
Configuration is loaded from ~/.config/quack-norris/config.yaml, a project-local config.yaml/llms.yaml, or a file passed with --config in ACP mode.
defaults:
model: ollama/qwen3:14b
llms:
- group: ollama
provider: OpenAI
api_endpoint: http://localhost:11434/v1
api_key: ollama
context_window: 32768
Supported providers include OpenAI-compatible endpoints, Ollama, Azure OpenAI, AWS Bedrock, and GitHub Copilot. Static model lists can be configured with models:; dynamic OpenAI-compatible and authenticated Copilot providers are discovered through their /models endpoints.
🛠️ Tools
Quack norris comes with a set of built-in tools to make your life easier. With ACP the tools are used if the client advertises the required capabilities, with the SDK you have control and can add, remove or replace tools as you like.
| Tool | Purpose |
|---|---|
file_view |
Read a file or list a directory |
file_write |
Create or write a text file |
file_str_replace |
Replace one exact text occurrence |
file_move |
Move a file or directory |
file_delete |
Delete a file or directory |
pwsh / bash |
Run a platform-appropriate shell command |
check_tool |
Poll a deferred operation |
await_tool |
Wait for a deferred operation |
kill_tool |
Cancel a deferred operation |
use_skill |
Load full skill instructions by name |
🔍 Diving Deeper
- Documentation
- Development commands:
uv run python -m pytest uv run ruff check . uv run ty check quack_norris
⚖️ License
Metadata
Release files for quack-norris 4.0.3
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | Provenance | Actions |
|---|---|---|---|---|
| quack_norris-4.0.3.tar.gz | 161.9 kB | With provenance | Details for quack_norris-4.0.3.tar.gz |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Actions Reset |
|---|---|---|---|---|
| quack_norris-4.0.3-py3-none-any.whl | Python 3 | none | any | Details for quack_norris-4.0.3-py3-none-any.whl |
Total release size: 262.1 kB
Release files / quack_norris-4.0.3.tar.gz
| Download URL | quack_norris-4.0.3.tar.gz |
|---|---|
| Size | 161.9 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
e59c03d31fa66b0f857a7213fb00ffb5cd79e311926954eceb90da31f011a3ec
|
|
BLAKE2b-256 checksum How to use checksums |
d7e4dd2a758b27f62e82955426ba2a35a2cb50027f5b20f926d82e973a779304
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/7.0.0 CPython/3.13.14
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Aug 25, 2026.
Transparency logRelease files / quack_norris-4.0.3-py3-none-any.whl
| Download URL | quack_norris-4.0.3-py3-none-any.whl |
|---|---|
| Size | 100.2 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
f6c408911f17944975e64a462d4dcfdd560f0e8095530c3b075c9cc67139a081
|
|
BLAKE2b-256 checksum How to use checksums |
d764852b6cb6790de283d73f60c67b51b37f3089e692f4bda33e1656d71169a9
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/7.0.0 CPython/3.13.14
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Aug 25, 2026.
Transparency logSecurity for quack-norris 4.0.3
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
Full provenance
All 2 files in this release have been uploaded with provenance metadata.
Attestation for quack_norris-4.0.3.tar.gz
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Aug 25, 2026.
Transparency logA note on package security
PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.
To learn more about protecting yourself from malicious actors, visit our package security documentation.