by Wayn-Git
AMETHYST: a local-first personal operating system: one AI agent over your files, shell, tasks, calendar, notes and MCP connectors. Python + FastAPI + SQLite, React interface.
# Add to your Claude Code skills
git clone https://github.com/Wayn-Git/AmethystAmethyst is an open-source ai agents skill for AI coding assistants such as Claude Code, Codex CLI, and ChatGPT, built by Wayn-Git. AMETHYST: a local-first personal operating system: one AI agent over your files, shell, tasks, calendar, notes and MCP connectors. Python + FastAPI + SQLite, React interface. It has 51 GitHub stars.
Amethyst's catalog security scan is still queued. You can run an instant dependency and prompt-injection check now with the "Scan for vulnerabilities" button above.
Clone the repository with "git clone https://github.com/Wayn-Git/Amethyst" and add it to your Claude Code skills directory (see the Installation section above).
Amethyst is primarily written in Python. It is open-source under Wayn-Git on GitHub, so you can review or fork the full source.
Yes. SkillsLLM lists many other AI Agents skills you can browse and compare side by side. Open the AI Agents category from the badge at the top of this page, or use the Related Skills and comparison links further down to weigh Amethyst against similar tools.
No comments yet. Be the first to share your thoughts!
Unlocks once the catalog security scan passes (runs nightly).
⚠️ Third-Party Software Notice
This skill is third-party open-source software developed and hosted independently on GitHub. SkillsLLM is an informational directory and does not control or maintain the underlying repository.
Any security checks, ratings, or warnings displayed by SkillsLLM are automated and limited in scope. They do not constitute a security certification or guarantee that the software is safe, error-free, or free from malicious code, vulnerabilities, compromised dependencies, or prompt-injection risks.
Review the source code, permissions, dependencies, and configuration before installing or running any third-party skill. Use is at your own risk. To the maximum extent permitted by applicable law, SkillsLLM is not liable for losses arising from third-party software.
The deep catalog scan for this skill is still queued. Run an instant dependency check now instead.
A personal operating system: one AI agent over your files, shell, tasks, calendar, notes and connected services. Single-user and local-first — your data stays in a SQLite file on your machine, your secrets stay in the OS keychain, and nothing is sent anywhere except to the model provider you choose.

📖 Full guide: See QUICKSTART.md for the 2-minute setup, connecting Ollama (free local models), and API keys.
git clone <this repository> && cd amethyst
./run.sh
# → Opens http://127.0.0.1:8000 automatically
(On Windows Command Prompt, run run.bat. On Mac/Linux, run ./run.sh)
The script checks prerequisites, creates .venv, installs dependencies from requirements.txt, builds the web UI, initializes the local SQLite database, and opens AMETHYST in your default browser.
./run.sh --setup (or run.bat --setup) for the interactive configuration wizard (API keys, OAuth, Cloudflare, connectors)../run.sh --dev for concurrent backend + frontend hot-reloading../run.sh --doctor to run diagnostics.git clone <this repository> && cd amethyst
docker compose up
# → http://127.0.0.1:8000
One image, one process, one port: the API and the built interface come from the same origin, so there is no second service and no cross-origin request to configure. First run walks you through pointing it at a model and signing into whatever connectors you want; state lives in two volumes (./data/amethyst for the library and database, a named volume for connector tokens) and survives restarts.
Exposure warning, unhedged
AMETHYST has no authentication. Anything that can reach port 8000 can read your files, run shell commands and read your mail. The compose file publishes on
127.0.0.1only — do not change that without putting an authenticating reverse proxy in front of it (deployment.md).
Google and Spotify sign-ins need network_mode: host (the Linux default here); the docker notes say why, and what a container degrades at honestly — desktop notifications, the shell sandbox on hardened hosts, office conversion.
Developers: CONTRIBUTING.md covers the dev install, the one-worker rule, the secrets rule and the -e rule — three traps a container image and a public repository each have one of.
Ask for something in one line. AMETHYST decides which of its tools to use, asks permission before anything that writes or runs, and shows you exactly what it did.

That turn is three tool calls — a web search, then two fetches — resolved without being nudged. The agent loop treats an empty or truncated reply as unfinished work and continues rather than ending the turn on a blank bubble.
Everything that writes or runs asks first, and the prompt names the operation, not just the tool, so approving a read-only shell command never approves a destructive one.

python3 -m venv .venv
source .venv/bin/activate # Windows: .venv\Scripts\activate
pip install -r requirements.txt # or: uv pip install -r requirements.txt
amethyst init # ~/.amethyst, the database, default config
amethyst doctor # what is configured and what is missing
cd frontend && npm install && npm run build
cd ..
amethyst serve --open # http://127.0.0.1:8000
Point it at a model. Ollama is preconfigured; a cloud provider keeps its key in the OS keychain, never in the config file:
amethyst providers catalogue # what AMETHYST knows how to configure
amethyst providers add anthropic
amethyst secrets set amethyst/anthropic # prompts, so the key stays out of shell history
Any OpenAI-compatible endpoint — vLLM, LM Studio, a proxy — works with no code change:
providers:
- name: my-vllm
base_url: http://localhost:8000/v1
default_model: llama-3.1-8b
context_window: 32768 # optional; otherwise it is guessed
Configure a second provider and a turn survives the first one being down: it falls back, and says which provider answered. See providers.md.
One React app over the same API the CLI uses. Every image below is a real screenshot of a running instance.
Beta pages (Mail, Automations) are off until Settings → Beta pages is enabled.
Every action in the app is also in the command palette (⌘K), the + menu gathers everything the agent can be given for the next message, and ? lists every keyboard binding.



Press ? in the app for every keyboard binding; interface.md covers how each view is built and why it is this one.
The honest table: most missing pieces cost a feature quietly rather than break a start.
| this machine has | then this works | without it |
|---|---|---|
ffmpeg + ffprobe |
reels and audio transcription | the item is saved with a title only; says so |
bubblewrap (Linux) / seatbelt (macOS) |
the shell sandbox | commands still confirm, then run unsandboxed; amethyst doctor states which |
uv/uvx and Node npx |
the MCP connector catalogue | half the catalogue cannot start; named in each row |
sqlite-vec |
semantic search | search falls back to keyword-only, with a warning in the log |
pdftotext (poppler) |
reading PDFs | PDF extraction fails with a named error |
soffice (LibreOffice) |
converting to .docx/.pptx |
the tool refuses with the install line — not in the image (~800MB); docker compose exec amethyst apt-get install -y libreoffice-writer if you need it |
| a provider key | summaries, tags, transcription | capture still works; the item says "not summarised" and enrichment can be re-run later |
Works with nothing to register — the connector signs into your account, no app of yours needed:
fetch, memory, playwright, chrome-devtools — no auth at allvercel — its authorization server accepts dynamic registration, so AMETHYST registers on first sign-inmicrosoft-todo — Microsoft's own public client, device-code flowgithub, linkedin, tavily, exa, firecrawl — an API key or an app registration of your own, pasted into the rowNeeds an OAuth app registration of your own:
AMETHYST_DEFAULT_GOOGLE_*), ships with no value, and would not remove the weekly renewal. The connector announces its grant age before a tool call finds out. connectors.md has the full accounting.A friend contributing on their own machine never reaches yours: the shared registration, where one exists, identifies the software; every token is minted per install and stays there.
Each of these was exercised end to end, not just wired up.
The agent loop. Reason → act → observe, with guards on iterations, wall-clock time, repeated calls and continuations. Streaming, retry on transient provider failures, and a stop that interrupts the