Skip to main content
asky icon asky title

asky is a command-line AI assistant with web search, local document Q&A, conversation history, and an optional XMPP remote-chat mode.

It runs as asky or ask. You give it a query, it gives you an answer.

What you need to get started

  • Access to an OpenAI compatible LLM provider (OpenRouter, Gemini, OpenAI, Antrophic or a local model via LM Studio, Ollama, etc.)
  • A search provider for web queries, Asky supports:
    • Local SearXNG instance.
    • Tavily (1000 free requests, per month).
    • Serper (2500 free requests, one time).

New here? Start with the Quick Start guide.

Features

  • Multi-model support - define model aliases for any OpenAI-compatible API endpoint and switch between them with -m.
  • Web search and tool calling - the model can search the web, fetch URLs, and use the current date to answer questions. Tool calls are visible in the output.
  • Deep research mode - iterative retrieval across web sources and local documents, with a vector-indexed local corpus for semantic search.
  • Document Q&A - point asky at a PDF, EPUB, or folder of files and ask questions about the content. See Document Q&A.
  • Conversation history and sessions - every query is saved locally. Resume any previous conversation with -c, or use named sticky sessions with -ss.
  • User memory - save facts across sessions. asky injects relevant memories into future queries automatically.
  • Custom tools - expose any local CLI command as a tool the model can call.
  • XMPP daemon mode - run asky --daemon to log into an XMPP account and accept queries over chat from any XMPP client app (phone, desktop, etc.). Includes voice transcription on macOS.
  • Web Admin Console - authenticated browser interface for persona management, web collection review, and background job monitoring.
  • Cross-platform system tray - on macOS, Linux, and Windows, daemon mode adds a tray icon for start/stop control and auto-start at login.
  • Playwright browser plugin - fetches pages using a real browser, useful for sites that block standard HTTP clients.
  • File prompts - load a prompt from a file with file://path/to/prompt.txt.
  • Smart context management - summarizes old conversation turns in the background to stay within model context limits.

Installation

As a CLI tool

This is the typical way to install asky. It gets its own isolated environment managed by uv:

uv tool install asky-cli

Optional extras:

# iTerm2 terminal context integration (macOS)
uv tool install "asky-cli[iterm2]"

# XMPP daemon (text only)
uv tool install "asky-cli[xmpp]"

# Voice transcription (macOS, mlx-whisper)
uv tool install "asky-cli[mlx-whisper]"

# macOS full bundle: iterm2 + mlx-whisper + rumps + slixmpp
uv tool install "asky-cli[mac]"

# System tray icons (Linux/Windows)
uv tool install "asky-cli[tray]"

# Playwright browser plugin
uv tool install "asky-cli[playwright]"

From source:

uv tool install -e .

As a library

If you want to use asky programmatically in your own Python project (see Library Usage Guide):

uv pip install asky-cli

Basic Usage

# Basic query
asky what is the correct temperature for green tea

# Ask about a local document
asky -r path/to/report.pdf "What are the main conclusions?"

# Research mode - web sources
asky -r web "Compare the latest iPhone vs Samsung flagship specs"

# Continue from a previous query
asky -c "~1" explain more

# Persistent named session
asky -ss "Project X" "Let's plan the API structure"

# Use a specific model alias (defined in models.toml)
asky -m gf "Explain quantum entanglement"

# Copy final answer to clipboard
asky -cc "Write a regex to match email addresses"

# Pro-tip: Create a clipboard-first alias for command-only terminal assistance:
# alias al='asky -L -cc -sp "You are a CLI assistant. Answer briefly. When the user asks for a shell command, return only the command text. No markdown, no code fences, no explanation."'

# Run XMPP daemon in the background (menu bar on macOS if supported)
asky --daemon

# Run daemon attached to the terminal
asky --daemon --foreground

# Edit daemon settings interactively
asky --config daemon edit

# Add or edit model aliases
asky --config model add
asky --config model edit gf

# History, sessions, memory
asky history list 20
asky session list
asky memory list

Example output for a query that uses web search:

$ asky "What is the weather in Delft right now?"
Dispatching tool call: web_search with args {'q': 'weather Delft Netherlands'}
Dispatching tool call: get_url_content with args {'urls': [...]}

The weather in Delft, South Holland is currently 45°F, cloudy with showers.

Query completed in 3.88 seconds

Run asky --help for the full list of commands and flags.

Documentation

User guides

Developer / advanced

Maintainer release flow: bump [project].version in pyproject.toml, push to main, and let the Publish package GitHub Actions workflow run the tests, upload dist/* to a GitHub Release, and publish the same artifacts to PyPI.

Metadata

Release files for asky-cli 0.4.15

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for asky-cli 0.4.15
File Size Uploaded Provenance
asky_cli-0.4.15.tar.gz 767.5 kB With provenance Details

Built distribution (wheel)

Table of built distributions (wheels) for asky-cli 0.4.15
File Interpreter ABI Platform
asky_cli-0.4.15-py3-none-any.whl Python 3 none any Details

Total release size: 1.6 MB

Release files / asky_cli-0.4.15.tar.gz

Download URL asky_cli-0.4.15.tar.gz
Size 767.5 kB
Tags Source
SHA-256 checksum
How to use checksums
bee8fa0c5a45613085de3a772ab1c46fe6faaaba16ae0cf16484b007827f9299
BLAKE2b-256 checksum
How to use checksums
363a10f118d3c463dde163c8b1a5e26a9e92b22f0979178210429b0756839a53
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/6.1.0 CPython/3.13.7

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 Mar 16, 2026.

Transparency log

Release files / asky_cli-0.4.15-py3-none-any.whl

Download URL asky_cli-0.4.15-py3-none-any.whl
Size 876.0 kB
Tags Python 3
SHA-256 checksum
How to use checksums
34006588f6b33c0ea7d90c76418582df828933ea35de498133f290b9e1ca6c2d
BLAKE2b-256 checksum
How to use checksums
7c6c517197e73369618ced16a20e08879e0c11264d26c3620f2424c0959fe318
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/6.1.0 CPython/3.13.7

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 Mar 16, 2026.

Transparency log

Security for asky-cli 0.4.15

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 asky_cli-0.4.15.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 Mar 16, 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.

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