Skip to main content

Your AImazing rubber duck debugging companion. Helps you with anything on your PC.

Project description

🦆 Quack Norris - the code savy star 🌟

picture of quack norris

Are you tired of spending hours ⏳ debugging your code? Look no further! Quack Norris 🦆 is here to save the day. This AImazing rubber duck will be your trusty AI companion 🤖, helping you tackle anything on your PC 💻.

Unified API Access to Agentic AI: Experience seamless integration with leading language models through our unified API. This innovative platform supports agentic AI, allowing tools and retrieval-augmented generation (RAG) functionalities to be transparently utilized by any connecting app - whether it's focused on chat or other tasks. 🤖💬

Global Conversations: Our advanced feature intelligently aggregates conversations from various connections into a cohesive global conversation, powered by the quack-norris-global model (itself using any model you want in the background). This ensures continuity and context across multiple interactions, enhancing your user experience and productivity. 🚀🌐

🛠️ Installation

# for server use (just backend)
pip install quack-norris

# for desktop use (includes ui)
pip install quack-norris[ui]

👨‍💻 Usage

Run the ui or server from the commandline.

# run server
quack-norris-server

# run ui (including local server, if not present)
quack-norris-ui

🌐 API

The server exposes an OpenAI style API for you to use in other tools as well. However, to access all features, you need to know the following:

  • model = "quack-norris" uses whatever is selected by quack norris (user, agent or router)
    • model = "quack-norris:code" hints that we prefer a code savy model
  • model = "quack-norris-global" (and variants) use the same conversation accross all connections (not per connection)
    • allows you to have a conversation across multiple applications (breaking boundaries between your IDE and quack-norris-ui)
    • quack-norris-ui uses the global model by default
  • /cmd - slash-commands allow you to interact with the server instead of the model (returns the response of the command instead of a model response)
    • /fetch gets the messages in the chat since your last message
    • /new [name] starts a new chat with the model using the (optional) name (use timestamp as name for unnamed chats)
    • /clear is an alias for /new
    • /rename name rename the current conversation to a new name
    • /select name change to another conversation
    • /model modelname change the model of the conversation (e.g. /model llama3.2:7b)
    • /list list all available conversations

💡 Roadmap

  • Server
    • Provide OpenAI Rest API Endpoint
    • Route requests to LLM via an OpenAI API (proxy)
    • Route quack norris model variants to custom chat handler
    • Implement commands for quack norris chat handler
    • Implement named and unnamed chats (history management)
    • Implement global chat mangling
    • Implement quack norris chat router (agentic, tools)
    • Implement agentic AI core
    • Implement tool calling (for AI and User)
    • Implement tools
      • Web Search (get urls + abstract)
      • Web Scraper (get content of url as text)
      • Search Wikipedia (get article names + abstract)
      • Read Wikipedia (get wikipedia article on topic as text)
      • RaG Context Retriever (get filename and text snippet as context)
      • Document Read (printout content of a file)
      • Document Writer (write text to a file)
      • Paper Search (Arxiv, Google Scholar)
      • Paper Summarize - Pass 1 (fast, short summary of a transcribed pdf)
      • Paper Summarize - Pass 2 (detailed summary of a pass 1 summarized paper)
      • PDF Downloader (Arxiv, Google Scholar or url)
      • PDF Transcribe (pdf to markdown/text)
      • Podcast Creator (generate a podcast explaining the content of a document)
    • Provide E-Mail endpoint (write mail and AI will respond to you)
    • Provide Phone Call endpoint (call via phone and AI will respond to you)
    • Startup/boot a model server, if needed (e.g. raspi starts gaming PC)
  • UI
    • A floating duck (movable)
    • Double click opens a chat window with buttons for actions
    • Implement Actions:
      • Take Screenshot (into chat input)
      • Transcribe Audio (into chat input)
        • use transcript to chat with AI
        • use "Document Writer" tool to take notes
      • Call (transcript is sent after a pause, response is read and it listenes again for user input)
      • Manage Chats
        • New Chat
        • Switch/Change Chat
        • Archive Chat
        • Change Chat's Model

👥 Contributing

Feel free to make this code better by forking, improving the code and then pull requesting.

I try to keep the dependency list of the repository as small as possible. Hence, please try to not include unnescessary dependencies, just because they save you two lines of code.

When in doubt, if I will like your contribution, check the .continuerules for AI assistants. The rules for AI will also apply to human contributors.

⚖️ License

Quack Norris is licensed under the permissive MIT license -- see LICENSE for details.

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

quack_norris-0.0.1.tar.gz (115.2 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

quack_norris-0.0.1-py3-none-any.whl (113.0 kB view details)

Uploaded Python 3

File details

Details for the file quack_norris-0.0.1.tar.gz.

File metadata

  • Download URL: quack_norris-0.0.1.tar.gz
  • Upload date:
  • Size: 115.2 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.0.1 CPython/3.12.8

File hashes

Hashes for quack_norris-0.0.1.tar.gz
Algorithm Hash digest
SHA256 fdb3ecd9f0824481df20716697a1a08eaf297bd1617a455c2753ab9c305c1b51
MD5 c6eeaeaee98116fe2f4d638fb7c4e661
BLAKE2b-256 efbc437285403a1bccf09f77c7e73527edb84f6b71a890a205e84aeb278ca7c7

See more details on using hashes here.

Provenance

The following attestation bundles were made for quack_norris-0.0.1.tar.gz:

Publisher: python-publish.yml on penguinmenac3/quack-norris

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file quack_norris-0.0.1-py3-none-any.whl.

File metadata

  • Download URL: quack_norris-0.0.1-py3-none-any.whl
  • Upload date:
  • Size: 113.0 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.0.1 CPython/3.12.8

File hashes

Hashes for quack_norris-0.0.1-py3-none-any.whl
Algorithm Hash digest
SHA256 ceaf7f0bf92780abd76c1511b4848170c8e68f31a0efdfd7a5bda44d0bff9c27
MD5 506a26b5c1108cdaeb0911f5c734bb77
BLAKE2b-256 3401672804f166bc0066c83095f5fa1505784fa68bfa6b7fa63e58c574a78875

See more details on using hashes here.

Provenance

The following attestation bundles were made for quack_norris-0.0.1-py3-none-any.whl:

Publisher: python-publish.yml on penguinmenac3/quack-norris

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page