Skip to main content

A universal AI terminal workstation: multi-provider LLM chat, RAG, agentic tools, MCP, voice, 4-panel dashboard, spend tracking, batch processing, scheduling, and a plugin architecture.

Project description

Anythink

Think anything. Ask anything.

CI PyPI Python License: MIT

Anythink 3.1 is a universal AI terminal workstation. A Textual-powered TUI that brings RAG, agentic tools, MCP, voice, notifications, a 4-panel dashboard, a full automation and cost-awareness layer, and now a complete per-theme visual identity system to your terminal.


Features

Core

  • Multi-provider — Groq, Google Gemini, OpenAI, Anthropic, Mistral, Cohere, Ollama, LM Studio
  • Textual TUI — chat bubbles, streaming markdown, 4 color themes, persistent HUD
  • Model aliases — give models friendly names (groq-fast, claude)
  • Session management — auto-save, naming, undo, bookmarks, conversation branches
  • File & image input — attach source files and images to any message

V2 Capabilities

  • RAG — index local folders, retrieve relevant chunks, transparent 📚 Retrieved from N sources footer
  • Code execution (/exec python ...) — runs code in your environment; ask/auto approval; result fed to AI
  • Agentic browsing (/browse) — snippet search + full-page httpx fetch; ask/auto modes
  • MCP — built-in servers (filesystem, sessions, RAG, search) + connect external MCP servers
  • Dashboard mode (--dashboard or Ctrl+D) — 4 panels: session list, stats, file browser, RAG browser, tool output log
  • Voice input (/voice) — mic capture → local Whisper transcription → editable text in input
  • Desktop notifications — RAG build done, slow response, exec, browse, provider failure

V2.2 Visual Identity & Personalization

  • Per-theme background fill — each theme (Midnight / Aurora / Ember / Arctic) paints a full-screen near-black tinted canvas, not just colored borders
  • Bubble Style toggle — switch between Boxed (bordered panels) and Minimal (thin accent bar, no border, full-width transcript style) via /settings
  • Role Avatars — optional ⟨Y⟩ user glyph and AI glyph next to every message header, colored in theme tones
  • Compact Density mode — remove inter-bubble spacing for maximum history on screen
  • Relative timestampsjust now / Xm ago / Xh ago / Yesterday / absolute fallback; live 60-second tick with /settings absolute override
  • Retroactive theme application — switching theme or any visual setting instantly re-renders every existing message on screen
  • Unified monochrome icon language — all emoji replaced with theme-colorable Unicode glyphs (⌕⌬▲✓✕⎘★◆) and an ASCII-safe fallback set; no more fixed-color emoji anywhere
  • Collapsed session naming — the naming prompt disappears after answering, replaced by a single compact ✓ Session named: line
  • Exact context-% precision0.3% shown for sub-1% non-zero usage; flat 0% only when context is genuinely empty

V3 Capabilities

  • Per-model generation parameters — tune temperature, max tokens, top-p, frequency/presence penalty per alias (/params)
  • Multi-model comparison — send one prompt to multiple aliases simultaneously; pick which response to continue with (/compare)
  • Spend tracking — estimated USD cost per response, session, day, month; HUD cost indicator; optional soft budget limit (/cost)
  • Prompt templates — save reusable prompts with {{variable}} placeholders; instantiate with inline args (/template, /use)
  • Session export — export conversations to Markdown, JSON, or PDF (/export)
  • Scheduled prompts — set recurring prompts on a cron schedule; output to file or notification (/schedule, anythink scheduler)
  • Batch processing — run a file full of prompts non-interactively; parallel execution; Markdown or JSON output (anythink run)
  • Self-update — check and install updates directly from PyPI (/update)
  • Diagnostics — comprehensive health check: Python version, deps, API keys, local servers, config, disk (/doctor, anythink doctor)
  • Config backup & restore — export your full setup as a portable JSON bundle; import on any machine (/config export|import)

Installation

# Base install (all providers via lazy imports, no heavy extras)
pip install anythink

Optional extras

Extra Installs Use case
pip install anythink[groq] groq SDK Groq cloud inference
pip install anythink[openai] openai SDK OpenAI / Azure
pip install anythink[anthropic] anthropic SDK Claude models
pip install anythink[gemini] google-generativeai Gemini Pro / Flash
pip install anythink[mistral] mistralai SDK Mistral models
pip install anythink[cohere] cohere SDK Cohere Command
pip install anythink[search] duckduckgo-search Free web search
pip install anythink[rag] sentence-transformers Local RAG embeddings
pip install anythink[voice] openai-whisper + sounddevice Voice input
pip install anythink[browser] playwright Headless web browsing
pip install anythink[mcp] mcp SDK External MCP server connections
pip install anythink[pdf] fpdf2 PDF session export
pip install anythink[scheduler] croniter Cron-based scheduled prompts
pip install anythink[all] Everything above Full workstation

Quick Start

# Set up a provider and model alias
anythink keys add groq
anythink model add          # alias=groq-fast, provider=groq, model=llama3-8b-8192

# Start chatting (Simple Chat Mode)
anythink

# Or launch the 4-panel Dashboard
anythink --dashboard

# Run a batch of prompts non-interactively
anythink run --file prompts.txt --output results.md

# Check your installation health
anythink doctor

CLI Reference

# Chat
anythink                    # Simple Chat Mode
anythink --dashboard / -D   # 4-panel Dashboard Mode
anythink --version / -V     # Show version

# Key & model management
anythink keys list|add|show|update|delete|test <provider>
anythink model list|add|remove

# Plugins
anythink plugins list|info|install|remove

# V3: Batch processing (non-interactive)
anythink run --file prompts.txt --output results.md [--parallel N] [--alias A] [--format md|json]

# V3: Diagnostics
anythink doctor

# V3: Scheduled prompt automation
anythink scheduler start [--poll 60]   # Foreground loop, checks every N seconds
anythink scheduler run <name>          # Run a schedule immediately
anythink scheduler list                # Show all schedules and their status

Slash Commands

Chat & History

Command Description
/help List all commands
/clear Clear conversation history
/history Show recent messages
/tokens Context window usage
/model Active provider and model
/persona <name> Activate a saved persona
/persona clear Remove active persona
/exit / /quit End the session

Sessions & Branches

Command Description
/rename <name> Rename current session
`/session save load
/undo Remove last exchange
/bookmark [turn] Bookmark an AI response
/bookmarks List bookmarks
/bookmark export [path] Export bookmarks to file
/branch Create a conversation branch
/branch list List all branches
/branch switch <name> Switch to branch

Files & Search

Command Description
/file <path> Attach a text file
/image <path> Attach an image
/files List pending attachments
`/search on off

RAG

Command Description
/rag new <name> Create a new RAG index
/rag use <name> Activate an index
/rag off Deactivate RAG
/rag list List indexes
/rag rebuild [name] Rebuild an index
/rag info [name] Show index details
/rag status Show active index

Tools

Command Description
/exec <lang> <code> Run code in your environment
/exec mode ask|auto Change exec approval mode
/browse <url|query> Fetch web page or search
/browse mode ask|auto|http|headless Change browse mode

MCP

Command Description
/mcp list List registered servers
/mcp tools List available tools
/mcp call <tool> [k=v ...] Call a tool
/mcp connect <name> stdio <cmd> Connect to external server
/mcp disconnect <name> Disconnect
/mcp server start|stop|status Run Anythink as MCP server

Voice & Notifications

Command Description
/voice Start recording (Enter to stop)
/voice model tiny|base|small|medium|large|turbo Set Whisper model
/voice language <code> Pin transcription language
/notify on|off|status Notification control
/notify type <name> on|off Per-type toggle

V3 — Model Parameters & Spend

Command Description
/params Show generation params for the active alias
/params temperature=0.3 max_tokens=2048 top_p=0.9 Set params (key=value pairs)
/params reset Reset to provider defaults
/cost Session spend estimate
/cost today Today's spend across all sessions
/cost month This month's spend
/cost by-model Lifetime spend broken down per model
/cost by-provider Lifetime spend broken down per provider

V3 — Templates

Command Description
/template save <name> <body> Save a prompt template (supports {{variable}})
/template list List all saved templates
/template show <name> Preview a template
/template delete <name> Remove a template
/use <name> [key=value ...] Render a template and send as next message

V3 — Export & Compare

Command Description
/export Export session as Markdown (default)
/export json [path] Export as JSON
/export pdf [path] Export as PDF (pip install anythink[pdf])
/export markdown --range 1-10 Export a turn range
/compare <alias1> <alias2> [...] Compare up to 4 models on the next prompt

V3 — Scheduling

Command Description
/schedule list List all scheduled prompts
/schedule add <name> "<cron>" <prompt> Create a scheduled prompt
/schedule enable <name> Enable a paused schedule
/schedule disable <name> Pause a schedule
/schedule remove <name> Delete a schedule
/schedule run <name> Run a schedule immediately

V2.2 — Visual Settings

Command Description
/settings Open the interactive settings overlay
/theme <name> Switch theme instantly (midnight | aurora | ember | arctic)

All five new visual options (Bubble Style, Role Avatars, Density, Timestamps, Icon Style) are adjustable live from the /settings overlay — every change takes effect immediately and retroactively across the full conversation.

V3 — Maintenance

Command Description
/doctor Full installation health check
/update check Check for a newer version on PyPI
/update Upgrade Anythink to the latest version
/config export [path] Export config as a portable JSON bundle
/config import <path> Restore config from a bundle

Dashboard Shortcuts

Key Action
Ctrl+D Toggle Simple / Dashboard mode
Ctrl+L Toggle Sessions panel
Ctrl+R Toggle Stats panel
Tab Cycle bottom tabs
Escape Return focus to input

Configuration

All data stored under the XDG Base Directory hierarchy:

Path Default
Config ~/.config/anythink/config.yaml
Models ~/.config/anythink/models.yaml
Templates ~/.config/anythink/templates.yaml
Schedules ~/.config/anythink/schedules.yaml
Sessions ~/.local/share/anythink/sessions/
Exports ~/.local/share/anythink/exports/
Spend log ~/.local/share/anythink/spend.yaml
RAG metadata ~/.local/share/anythink/rag/
RAG vectors ~/.cache/anythink/rag/

Key config.yaml options:

active_theme: midnight          # midnight | aurora | ember | arctic
default_model_alias: groq-fast
session_autosave: true
search_provider: duckduckgo
embedding_backend: local        # local | api
exec_mode: ask                  # ask | auto
browse_mode: http               # http | headless
browse_autonomy: ask            # ask | auto
voice_model: base               # tiny|base|small|medium|large|turbo

# V2.2 visual identity (all adjustable live via /settings)
bubble_style: boxed             # boxed | minimal
density: comfortable            # comfortable | compact
show_avatars: false             # true | false
timestamps: relative            # relative | absolute
icon_style: unicode             # unicode | ascii

# V3 spend tracking
spend_tracking: true
spend_budget_period: monthly    # monthly | daily
spend_budget_soft_limit: null   # e.g. 10.0 for a $10 soft limit

Development

git clone https://github.com/dhineshtheprogrammer/anythink_ai
cd anythink_ai
pip install -e ".[all,dev]"

ruff check src/
black --check src/ tests/
mypy src/anythink
bandit -r src/anythink -c pyproject.toml
PYTHON_KEYRING_BACKEND=keyrings.alt.file.PlaintextKeyring pytest tests/ -v
python -m build

See CONTRIBUTING.md for contribution guidelines and CHANGELOG.md for release history.


License

MIT — 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

anythink-3.1.1.tar.gz (268.5 kB view details)

Uploaded Source

Built Distribution

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

anythink-3.1.1-py3-none-any.whl (176.6 kB view details)

Uploaded Python 3

File details

Details for the file anythink-3.1.1.tar.gz.

File metadata

  • Download URL: anythink-3.1.1.tar.gz
  • Upload date:
  • Size: 268.5 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.12

File hashes

Hashes for anythink-3.1.1.tar.gz
Algorithm Hash digest
SHA256 1e57b8bee6adf674cb75a7b4ed808cf7bca2228286aa00e6d0a103670d0d7806
MD5 50b49fefd2d64d7c8eed90fd54d5cb77
BLAKE2b-256 43fc23b586de15fca0fd0e1cce37de1a8bff1dbe3ffd2aee35020d65b4a0203c

See more details on using hashes here.

Provenance

The following attestation bundles were made for anythink-3.1.1.tar.gz:

Publisher: publish.yml on dhineshtheprogrammer/anythink_ai

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

File details

Details for the file anythink-3.1.1-py3-none-any.whl.

File metadata

  • Download URL: anythink-3.1.1-py3-none-any.whl
  • Upload date:
  • Size: 176.6 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.12

File hashes

Hashes for anythink-3.1.1-py3-none-any.whl
Algorithm Hash digest
SHA256 38f10c6f29f6f29f7a2f48a9ff227a1e024073df77064f364b2a42e469b58fbb
MD5 e068d5de704f2d92e2bcc93765c7c9b7
BLAKE2b-256 a38381ea1995a9ca707cf273e7fc163e72d2e5c664869db1fc371dbd0054ffec

See more details on using hashes here.

Provenance

The following attestation bundles were made for anythink-3.1.1-py3-none-any.whl:

Publisher: publish.yml on dhineshtheprogrammer/anythink_ai

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