Cross-platform, open-source voice assistant and framework to build fully-featured, offline machines you can talk to. Self-hosted. Desktop and mobile clients. Repos of note:
Hancho is a simple, pleasant build system with few moving parts.
Hancho fits comfortably in a single Python file and requires no installation, just copy-paste it into your source tree. Hancho is inspired by Ninja (for speed and simplicity) and Bazel (for syntax and extensibility). Like Ninja, it knows nothing about your build tools and is only trying to assemble and run commands as fast as possible. Unlike Ninja, you can use glob("*.cpp")
and such to make things far less verbose. Like Bazel, you invoke build rules by calling them as if they were functions with keyword arguments. Unlike Bazel, you can create build rules that call arbitrary Python code (for better or worse). Hancho should suffice for small to medium sized projects.
Schnoz is a tool that I wrote in Python to monitor network traffic and analyze potential threats. I compiled all of the small scripts regarding network analysis to create a multirange tool. Please make sure that you have scapy installed. Implements active network sniffing, pulling from pcap files, alerting on specific traffic parameters, and analysis of captured HTTP traffic.
Pint is a Python package to define, operate and manipulate physical quantities: the product of a numerical value and a unit of measurement. It allows arithmetic operations between them and conversions from and to different units.
It is distributed with a comprehensive list of physical units, prefixes and constants. Due to its modular design, you can extend (or even rewrite!) the complete list without changing the source code. It supports a lot of numpy mathematical operations without monkey patching or wrapping numpy.
A command-line script pint-convert provides a quick way to convert between units or get conversion factors.
The Python standard library once included a basic SMTP server in the smtpd module, based on the old asynchronous libraries asyncore and asynchat. It was formally removed in v3.12.
This package provides such an implementation of both the SMTP and LMTP protocols using the asyncio module (which has been standard since Python v3.4). Supports the relevant RFCs natively.
Can be executed from the command line, defaulting to port 8025/tcp: python3 -m aiosmtpd -n
or aiosmtpd -n
grab-site is an easy preconfigured web crawler designed for backing up websites. Give grab-site a URL and it will recursively crawl the site and write WARC files. Internally, grab-site uses a fork of wpull for crawling. Gives you a dashboard with all of your crawls, showing which URLs are being grabbed, how many URLs are left in the queue, and more; the ability to add ignore patterns when the crawl is already running; an extensively tested default ignore set (global) as well as additional (optional) ignore sets for forums, reddit, etc; duplicate page detection: links are not followed on pages whose content duplicates an already-seen page.
Bark is a transformer-based text-to-audio model created by Suno. Bark can generate highly realistic, multilingual speech as well as other audio - including music, background noise and simple sound effects. The model can also produce nonverbal communications like laughing, sighing and crying. To support the research community, we are providing access to pretrained model checkpoints, which are ready for inference and available for commercial use.
Hyperdiv is a framework for rapidly developing reactive browser UI apps in Python, with built-in components, terse immediate-mode syntax, and minimal tool boilerplate. Hyperdiv includes the Shoelace component system, markdown support via Mistune, charts via Chart.js, support for reading/writing browser local storage, and forms whose validation logic is implemented in Python.
After playing with some of the demo apps, this looks like a pretty cool library.
A Python wrapper for BookStack's API. It pretty much requires you to build the JSON yourself, but doing it as a hash table makes it a bit easier. I was able to hack together a directory full of Markdown files-to-Bookstack converter in about half an hour. If nothing else, it abstracts away a lot of the boilerplate you'd otherwise have to do yourself.
Embeddings databases are a union of vector indexes (sparse and dense), graph networks and relational databases. This enables vector search with SQL, topic modeling, retrieval augmented generation and more. Embeddings databases can stand on their own and/or serve as a powerful knowledge source for large language model (LLM) prompts.
Features
Normcap is a screen capture tool for the desktop. Specifically, it looks for text in the screencap and OCRs it for you.
Artificial Intelligence (AI) is often presented like a complex field, the state of the art being impossible to understand, models too large to train, incredible work in progress moving forward that could change anything, yet a black box inscrutable for anyone except the selected few.
This is truly damaging to the field as it is a fascinating topic and even though indeed nobody can understand it all, we can all benefit from tinkering with it, learning from it and possibly even using it.
Regardless of all those limitation the goal here is to showcase that even though not everything can be done on your desktop, a lot can. Composing from that and learning how it works can help to reconsider a potential feeling of helplessness. Not only can you self-host AI models, use them, adapt them, but there is a whole community and set of tools to help you do so. This movement itself is very encouraging. AI does not have to be a block box. Your digital life does not have to be owned by someone else, even for the state of the art.
ChessMaker is a Python (3.11+) chess implementation that can be extended to support any custom rule or feature. It allows you to build almost any variant you can think of easily and quickly. It was inspired by r/AnarchyChess - and the packaged optional rules are almost all inspired by that subreddit.
ChessMaker isn't tied to any GUI, but comes with a thin, pywebio, multiplayer web interface. The web interface supports choosing from the packaged rules, single player (vs Yourself), and multiplayer (vs a friend or random opponent). It also supports saving and loading games - which can be shared with others and be used as puzzles.
There are multiple sets of packaged rules to start with.
Welcome to PY-SDR v2.0, a powerful real-time spectrum visualization tool built using PyQt5 and Matplotlib. This application leverages the capabilities of RTL-SDR (Software Defined Radio) to provide a dynamic and interactive representation of radio frequency spectra.
Real-Time Spectrum Analysis: Capture and analyze radio frequency spectra in real-time with a customizable FFT size. 3D and 2D Waterfall Views: Visualize the spectrum data in both 3D and 2D waterfall plots for a comprehensive understanding. Set your desired RTL-SDR parameters, including sample rate, center frequency, and gain. Easily adjust the capture duration, FFT size, and other parameters to suit your needs.
Rye is a comprehensive project and package management solution for Python. Born from its creator's desire to establish a one-stop-shop for all Python users, Rye provides a unified experience to install and manages Python installations, pyproject.toml based projects, dependencies and virtualenvs seamlessly. It's designed to accommodate complex projects, monorepos and to facilitate global tool installations.
It's a little bit like rvm, but for Python.
Github: https://github.com/mitsuhiko/rye
Your AI second brain. A copilot to search and chat (using RAG) with your knowledge base (pdf, markdown, org). Use powerful, online (e.g gpt4) or private, offline (e.g mistral) LLMs. Self-host locally or have it always accessible on the cloud. Access from Obsidian, Emacs, Desktop app, Web or Whatsapp
Khoj is an AI application to search and chat with your notes and documents. It is open-source, self-hostable and accessible on Desktop, Emacs, Obsidian, Web and Whatsapp. It works with pdf, markdown, org-mode, notion files and github repositories. It can paint, search the internet and understand speech.
The unstructured library provides open-source components for ingesting and pre-processing images and text documents, such as PDFs, HTML, Word docs, and many more. The use cases of unstructured revolve around streamlining and optimizing the data processing workflow for LLMs. unstructured modular functions and connectors form a cohesive system that simplifies data ingestion and pre-processing, making it adaptable to different platforms and efficient in transforming unstructured data into structured outputs.
There is also an API built around this module.
What is this? Well, it’s a guide to a bunch of concepts that you might see in networking. It’s not Network Programming in C—see Beej’s Guide to Network Programming1 for that. But it is here to help make sense of the terminology, and also to do a bit of network programming in Python.
Is it Beej’s Guide to Network Programming in Python? Well, kinda, actually. The C book is more about how C’s (well, Unix’s) network API works. And this book is more about the concepts underlying it, using Python as a vehicle.
A utility that lets you query CSV, JSON and Parquet files with regular SQL statements. If DuckDB is okay with it, it'll run. Has both a fire-and-forget CLI and an interactive TUI.
marimo is an open-source reactive notebook for Python - reproducible, git-friendly, executable as a script, and shareable as an app.
Run one cell and marimo reacts by automatically running affected cells, eliminating the error-prone chore of managing notebook state. marimo's reactive UI elements, like dataframe GUIs and plots, make working with data feel refreshingly fast, futuristic, and intuitive. marimo notebooks are pure Python and stored as .py files. Version with git, run as Python scripts, import symbols from a notebook into other notebooks or Python files, and lint or format with your favorite tools. You'll always be able to reproduce your collaborators' results. Notebooks are executed in a deterministic order, with no hidden state — delete a cell and marimo deletes its variables while updating affected cells.
Collaborate on notebooks with git: small changes yield small diffs. Goodbye JSON, hello Python! Want to share outputs? Export to static HTML, or serve your notebook as a web app with the marimo CLI. The marimo editor comes with GitHub Copilot, autocomplete, hover tooltips, vim keybindings, code formatting, debugging panels, and extensive hotkeys. marimo also ships with a CLI, a library, and a VS Code extension. Learn more at our docs.