Skip to main content

🦆 Quack Norris - the code savy star 🌟

The harness optimized for SLMs

A rubber duckie coding nerd

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

The MIT License (MIT)

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)

Source distribution for quack-norris 4.0.3
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)

Table of built distributions (wheels) for quack-norris 4.0.3
File Interpreter ABI Platform Actions
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 log

Release 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 log

Security 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.

Select from 2 files

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 log

A 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.

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page