Skip to main content

A local-first desktop AI agent powered by Ollama LLM

Project description

โšก InfiniThink

A local-first desktop AI agent โ€” no cloud, no subscriptions, 100% private.

Python PySide6 Ollama License


๐Ÿ“– Overview

InfiniThink lets you control your computer using plain English. Type a message or speak a command, and the AI interprets it, plans the steps, and executes them โ€” all on your machine.

You: "prepare my research workspace"
InfiniThink: โœ… Launched Chrome
             โœ… Launched Notion  
             โœ… Opened research folder

Everything runs locally through Ollama (e.g. Llama 3). No API keys, no internet required for AI inference.


๐Ÿ—๏ธ Architecture

User (GUI / Voice / CLI)
        โ”‚
        โ–ผ
โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”
โ”‚  Input Processor     โ”‚  โ€” Chat widget, STT, CLI readline
โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”˜
         โ”‚
         โ–ผ
โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”
โ”‚ Command Interpreter  โ”‚  โ€” LLM via Ollama REST API โ†’ JSON command
โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”˜
         โ”‚
         โ–ผ
โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”
โ”‚   Task Planner       โ”‚  โ€” Multi-step plans for complex requests
โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”˜
         โ”‚
         โ–ผ
โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”
โ”‚  Execution Engine    โ”‚  โ€” Tool registry dispatch + error handling
โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”˜
         โ”‚
         โ–ผ
โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”
โ”‚    Tool System       โ”‚  โ€” app_tools ยท file_tools ยท system_tools
โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”˜
         โ”‚
         โ–ผ
   System Actions

See ARCHITECTURE.md for a full layer-by-layer breakdown.


๐Ÿ“‚ Project Structure

.
โ”œโ”€โ”€ infini_think/           โ† Core package (gui, core, tools, voice)
โ”œโ”€โ”€ assets/                 โ† Application icons and media
โ”œโ”€โ”€ tests/                  โ† Unit testing suite
โ”œโ”€โ”€ .gitignore              โ† GitHub exclusion rules
โ”œโ”€โ”€ requirements.txt        โ† Standard runtime dependencies
โ”œโ”€โ”€ README.md               โ† Main documentation
โ”œโ”€โ”€ LICENSE                 โ† MIT License (Private/Internal)
โ”œโ”€โ”€ ARCHITECTURE.md         โ† Technical architecture breakdown
โ””โ”€โ”€ pyproject.toml          โ† Python packaging and entry points

๐Ÿš€ Installation

Prerequisites

Requirement Install / Notes
Python 3.10+ python.org
Ollama ollama.com
Llama 3 model ollama pull llama3

1 โ€” Clone and install

git clone https://github.com/your-org/infini-think.git
cd infini-think
pip install -r requirements.txt

Windows PyAudio note: If pip install pyaudio fails, install the pre-built wheel:

pip install pipwin && pipwin install pyaudio

2 โ€” Start Ollama

ollama serve           # start the server (new terminal)
ollama pull llama3     # download the model (first time only)

3 โ€” Launch InfiniThink

# GUI (default)
python -m infini_think.app.launcher

# Or install as a package and use the CLI command
pip install -e .
infini-think

๐Ÿ’ฌ Usage

GUI Mode (default)

Launch the chat window and type or speak your commands:

Command What happens
open chrome Launches Google Chrome
organize my downloads Sorts Downloads folder by type
open my project folder Opens user's project directory
prepare my research workspace Opens Chrome + Notion + research folder
create a folder called Work Creates ~/Work
what's my system info Returns CPU, RAM, OS details
run ipconfig Executes shell command and shows output

CLI Mode

infini-think --cli
# or
infini-think --cli --verbose   # show plan details

Voice Mode

infini-think --voice

Override Model

infini-think --model mistral
infini-think --model llama3.1

๐Ÿ› ๏ธ Development Setup

# Install dev dependencies
pip install -r requirements-dev.txt

# Run tests
python -m pytest tests/ -v

# Type checking
mypy Project/

# Linting
ruff check Project/

# Format
black Project/

๐Ÿ”ง Configuration

All settings in config/settings.py can be overridden via environment variables:

Variable Default Description
INFINI_OLLAMA_URL http://localhost:11434 Ollama server URL
INFINI_OLLAMA_MODEL llama3 Model to use
INFINI_OLLAMA_TIMEOUT 60 Request timeout (seconds)
INFINI_VOICE true Enable voice I/O
INFINI_THEME dark UI theme (dark/light)
INFINI_LOG_LEVEL INFO Log level

๐Ÿ”ญ Roadmap

  • Plugin system โ€” drop-in tools via Python entry points
  • Contextual memory โ€” conversation history across sessions
  • Background agents โ€” scheduled and event-triggered automation
  • Premium UI & Themes โ€” dynamic Dark/Light mode toggle
  • Custom hotkey โ€” global shortcut to open InfiniThink
  • Windows tray icon โ€” always-on background mode

๐Ÿ“„ License

MIT โ€” see LICENSE.

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

infini_think-1.0.0.tar.gz (71.3 kB view details)

Uploaded Source

Built Distribution

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

infini_think-1.0.0-py3-none-any.whl (82.2 kB view details)

Uploaded Python 3

File details

Details for the file infini_think-1.0.0.tar.gz.

File metadata

  • Download URL: infini_think-1.0.0.tar.gz
  • Upload date:
  • Size: 71.3 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.11.9

File hashes

Hashes for infini_think-1.0.0.tar.gz
Algorithm Hash digest
SHA256 bb16f355cdb05074736f314b57201b07f19d3a7e9af0eacc705b0104e3959b18
MD5 2437e00713f5bf1680f074c564a5dfbf
BLAKE2b-256 1fed40b6904678f0d00296b63644518e6392fef939e72e2d45a9c823b375dcc0

See more details on using hashes here.

File details

Details for the file infini_think-1.0.0-py3-none-any.whl.

File metadata

  • Download URL: infini_think-1.0.0-py3-none-any.whl
  • Upload date:
  • Size: 82.2 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.11.9

File hashes

Hashes for infini_think-1.0.0-py3-none-any.whl
Algorithm Hash digest
SHA256 889a2ff6c0a83b45fbe99e55206b8fff91b5878a3a67eaef33ca5a456c3567aa
MD5 9ab90d9b27115b4e87a87e4de0588997
BLAKE2b-256 7bf7ba7ea6f2911e1aca2d4cd2b3bc24916ce920720c9f43e99506b6a1f53e9a

See more details on using hashes here.

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