ESP32-S3 Bench Guide
ESP32-S3 N16R8 bench guide: live pinout, lessons, simulators and the bench log.
Uoink keeps the videos, podcasts, and articles you study on your own disk, then hands them to your AI as a cited corpus.
EducationPython · JavaScriptGitHub @ryanbiddyOnlineOwner unconfirmed
Have you tried it? One tap is enough. No sign-in needed.
Save the YouTube videos, X posts, podcasts, and articles you study to your own disk, then hand your AI a cited local corpus. Free, local-first MCP server + Chrome extension for Claude, ChatGPT, Cursor & Cline.
Taken from the repository README
Loading the full README.
Read the full README ↗Save the YouTube videos, podcasts and articles you study. Your AI searches them and cites the timestamp.
Free, open source and local on Windows: transcripts, frames and comments land on your disk as Markdown and JSON, ready for Claude, Cursor, Codex or any MCP client.
Free, open source (MIT), and local-first: no account, no Uoink cloud, and anonymous usage counts stay off unless you turn them on. Uoink saves supported sources as structured Markdown on your machine, then makes the corpus available to your AI through the clipboard, a local MCP server, and an OpenAPI bridge. YouTube capture includes the transcript, timestamped screenshots, comments, and metadata; other source types keep the material their publishers expose.
You see a video that's clearly working and you want to know why. So you paste the YouTube link into Claude and hope it can "watch" it. It can't — it hallucinates the quotes, invents the title, and gives up past the first paragraph. You end up watching the whole thing on 2x, taking notes by hand.
Uoink fixes that. Click the Uoink button under any video (or right-click a link, or press Alt+U) and you get the full transcript, timestamped screenshots, top comments, channel context, and metadata — copied to your clipboard and saved on disk, ready for Claude, ChatGPT, or your notes app. Or tell your AI agent "uoink that video and decode the hook" and it does both, with no clipboard step.
The corpus compounds. Every source you save lands in one local library your AI can search, cite, and write from — in your voice.
| Source | Captured |
|---|---|
| YouTube (flagship) | Timestamped transcript, screenshots, top comments, channel context, full metadata, JSON sidecar |
| X / Twitter video + text | Video transcript and post text, author credit, thread context |
| Podcasts | Automatic RSS/Atom metadata watching; optional per-feed Auto-ingest for local MP3 download, WhisperX transcription, and corpus publishing |
| Web pages / articles | Readable text extraction into the same corpus format |
| Thread + top comments as Markdown |
Published sources are indexed in one local library. Podcast audio and transcripts stay under Uoink's local data folder; publishing an episode adds its Markdown and sidecar to that same searchable index.
1. Clipboard (the creator path) — Click Uoink, paste into Claude / ChatGPT. Transcript plus a paste-safe subset of screenshots inlined as images so the model sees text and frames in one paste.
2. MCP server (the agent path): A local MCP server exposing 91 tools over stdio, five library resource templates and nine prompts. Claude Desktop (.mcpb), Claude Code and Cursor get the full capture, research, writing and Library tool set through the standard connection. Consent gates are unchanged.
The stdio transport is tested with Claude Desktop and Cursor. Cline and Continue are standard-stdio compatibility paths, not individually smoke-tested.
UOINK_MCP_TOOLSET=core in the client's environment for the previous 35 tools. Cursor and other clients with tool caps may need this setting. Restart the connection after changing it./mcp/v1 exposes the same 91-tool registry through the token-authenticated local helper. Both MCP transports share handlers and flatten the same three top-level oneOf input schemas for client compatibility. The server still validates the exact frozen schemas.3. OpenAPI bridge (for local agents that don't speak MCP) — Local OpenAPI-capable agents and scripts can drive the same tools over an OpenAPI 3.1 surface at /openapi/v1/spec.json + POST /tools/<name>.
After installing, open a new terminal and run uoink status or
uoink search "working memory" --limit 5. The installer's checked PATH option
makes uoink available to agents with a local shell. uoink connect <client>
prints connection instructions for MCP clients.
The portable skill supports Claude Code, Codex, pi, Hermes Agent, and OpenClaw through MCP or the CLI. The Claude Code marketplace at ryanbiddy/uoink-agent-kit, published with this release, bundles the skill and MCP config. See Connect your agent for commands and client limits, or agent installation steps for installation from a shell.
After installing Uoink, open the setup page from the extension popup's Settings link and copy the generated snippet — or paste this into your client's MCP config. The stdio server runs the bundled Python against the installed uoink_mcp.py (the C-01 fix pins the app dir onto sys.path, so this command works on every install):
{
"mcpServers": {
"uoink": {
"command": "%LOCALAPPDATA%\\Uoink\\python\\python.exe",
"args": ["%LOCALAPPDATA%\\Uoink\\uoink_mcp.py"]
}
}
}
Claude Desktop does not expand
%LOCALAPPDATA%— use the full absolute path (e.g.C:\\Users\\<you>\\AppData\\Local\\Uoink\\python\\python.exe). Restart the client after saving; Uoink's tools appear automatically.
One-click install: a Claude Desktop .mcpb bundle installs the stdio server without hand-editing config. See docs/mcpb-bundle.md.
HTTP transport: point an HTTP MCP client at http://127.0.0.1:5179/mcp/v1 and send the header X-Uoink-Token (read the token from %LOCALAPPDATA%\Uoink\token.txt).
Uoink ships a portable Skill at skills/uoink/SKILL.md (installed to %LOCALAPPDATA%\Uoink\skills\uoink\) for finding saved evidence, citing timestamps, capturing URLs, saving notes, and writing from the user's sources and voice. Clients that support Agent Skills can load the same file alongside Uoink's MCP tools or use its exact CLI commands. See Connect your agent for install paths and the small Claude Code plugin kit.
Uoink-Setup-3.11.2.exe from the v3.11.2 release. For Windows 10/11; Mac steps are below. The installer is unsigned: if SmartScreen shows "Windows protected your PC", choose More info -> Run anyway, and check the file against the SHA-256 listed on the release page.%LOCALAPPDATA%\Uoink\ (no admin required). The finish page can launch the helper immediately, and an autostart entry runs it on each login.On a Mac (Apple Silicon, macOS 15 or later; preview): download Uoink-3.11.2-macos-arm64.dmg from the same release, drag Uoink to Applications, eject the disk and open Uoink from Applications. The app is signed and notarized, so macOS only asks its usual question about apps downloaded from the internet. Then load the extension from the setup splash as above. See docs/mac/INSTALL.md.
The store install link is controlled by store-config.json. When the listing is live, the setup splash and these steps offer Add to Chrome, with sideloading under Advanced. Release maintainers: follow SUBMIT-NOW.md.
For developers running from source, see REQUIREMENTS.md. Build the installer locally with ./build.ps1 (see docs/build-installer.md).
Desktop notifications are on by default. To keep background feed watches and captures invisible, open Dashboard → Settings → Local app and turn off Show desktop notifications. Uoink keeps suppressed updates in the dashboard's Activity view, so silence does not discard the event. Uoink also applies the same courtesy automatically while a foreground app covers its monitor, including borderless and exclusive-fullscreen games.
The persisted setting is notifications_enabled in settings.json. Local
clients can read it through GET /settings or update it with an authenticated
POST /settings body such as {"notifications_enabled": false}. Restart is
not required.
Extension flow: click Uoink under a video → Uoink extracts transcript, screenshots, comments, metadata → Markdown corpus lands on your clipboard (screenshots embedded) and the full set saves to disk → paste, run a prompt, get analysis.
Agent flow (MCP): your agent has the Uoink tools after setup → ask "uoink this video and decode the hook" → the agent calls uoink_video → classify_hook → analysis, no clipboard step.
Five research playbooks work over saved captures: outlier-posts, transcript-intel, comment-mining, creator-teardown and repurpose-pack. Use their stdio prompts or get_playbook_input on either transport. Uoink computes the metrics and supplies cited evidence; your client writes the report. These reads need no API key and make no network calls. See arguments and examples.
Optional ScrapeCreators discovery adds discover_candidates and
queue_discovered on both transports. It is off by default and uses your own
key, explicit credit confirmation and a daily credit cap (25 by default). Connected
agents need a separate opt-in; dashboard calls use a short-lived intent from
each click. Pick up to ten results to send through the normal capture queue.
Saved metric snapshots can supplement local playbooks without another paid
call. No ScrapeCreators thumbnails are loaded. The dashboard controls are
pending; see the discovery tool contract.
Your saved corpora, screenshots, podcast audio, transcripts, library index and diagnostic logs stay on your computer. Uoink has no account or cloud library.
Uoink sends no usage data by default. If you turn on "Share anonymous usage counts", it sends daily counts to usage.uoink.app: calls by tool name, known MCP clients, stdio or HTTP calls, captures by source and result, and library searches. Reports include a random install ID, app version, operating system and major version, processor type, install type and hours counted. They never include content, URLs, titles, paths, search text, usernames, IP addresses or account details.
Sharing is off by default. In Dashboard > Settings > App > Usage sharing, "See what is sent" shows the next report and the last ten sent reports with their dates. Turning sharing off deletes the random ID, local counts and sent history. UOINK_USAGE_SHARING=0 forces it off.
See the usage payload and counting design.
Capture fetches the source you ask for. Podcast watches poll feeds you enable; Auto-ingest can also download new episodes. Truncated X posts may use the FxTwitter fallback to retrieve full text. Transcription can download models with your consent, and Check now contacts GitHub for release information.
Optional AI features send relevant source text to Anthropic only with your own API key. Comment Intelligence, Hook Type classification and entity extraction are off by default; agent-requested analysis also requires your key. The key is stored in the OS credential store. Content you pass to an AI client is handled under that client's policy.
Read the Uoink privacy policy.
Uoink is designed and built for personal research, study, and original creator drafting. Users are solely responsible for ensuring that their use of captured media (transcript text, screenshots, and comments) complies with the Terms of Service, copyright policies, and API guidelines of YouTube, Reddit, X (Twitter), and any other source platforms. Uoink does not host, share, or claim ownership over third-party media.
MIT. See LICENSE. Third-party components and their licenses are listed in THIRD-PARTY-NOTICES.md.
See CHANGELOG.md for version history and ROADMAP.md for what's next.
Built by Ryan Biddy.