Augments featured image

Augments

Published on February 08, 2025

CLIOpen SourcePythonTooling

An AI-powered command-line toolbelt I built for myself

Augments is a small set of CLI commands I built to help me get through the steady stream of YouTube videos, articles, and copy-paste research that piles up during a normal week. Each command takes one input – a URL, a clipboard, a feed – and runs it through a local LLM to give me back something I can actually use: a summary, a set of references, an outline.

Two examples of what it looks like in practice:

  • Condense the four YouTube videos I bookmarked about the new Next.js App Router into ten minutes of notes I can paste into Obsidian.
  • Hand it the link to a long blog post and get back a TLDR plus a list of the resources the author cited, ready to drop into my notes vault.

The full origin story is in the companion blog post: Building Augments: Cybernetic Enhancements for the Information Age.

Latest Updates

๐Ÿค– Local AI with Ollama

Run powerful language models locally through Ollama integration. Pick the model that fits the task: a small fast one for quick summaries, a larger one tuned for code when you want deeper analysis.

Python
from augments.lib.llm import OllamaClient, ModelType

# Pick the best model for your task
client = OllamaClient(model=ModelType.CODE.value)  # Optimized for code
client.generate("Explain this function...")

# Or use environment variables for configuration
export OLLAMA_DEFAULT_MODEL=mistral  # Fast model for quick tasks
Python

Want to see what’s happening under the hood? Turn on debug mode to see which models are loaded and which one was picked:

Bash
๐Ÿ” Debug Information:
   โ€ข OLLAMA_DEFAULT_MODEL: codellama
   โ€ข PYTHONPATH: /workspace
   
Available Models:
   โ€ข codellama    28f8fd6cdc67    4.9 GB    4 days ago
   โ€ข llama2       fe938a131f40    3.8 GB    14 months ago
   โ€ข mistral      d364aa8d131e    4.1 GB    14 months ago

๐Ÿค– Using model: codellama (Specialized for code)

๐ŸŽจ Progress indicators that don’t lie

I kept losing track of whether long-running commands were stalled or just slow, so every command shows live progress. Different indicators per task, so you can see at a glance what stage you’re in:

๐ŸŒ’ Initializing YouTube Wisdom...
โ ‹ Fetching video metadata...
โ— Downloading transcript...
๐Ÿ“ฝ๏ธ Processing: How to Build a Neural Network
โ ‹ Generating summary...
โ— Extracting key insights...
โ—“ Finding referenced resources...
โœจ Processing complete!

Each loader is paired with the kind of work being done, so downloading, processing, and summarizing each have their own visual rhythm. Easier to glance at than a static spinner.

Bring Your Own Commands

Most of my own use of Augments is custom commands I’ve added for specific workflows. Adding a new one takes about 30 seconds:

1. Generate Your Command

One line to scaffold a new command:

Bash
./create_command.sh myNewCommand

This creates a new Python script with all the boilerplate you need:

scripts/
โ””โ”€โ”€ my_new_command.py  # Your new command

2. Add Your Logic

The template gives you a working command with progress tracking, an Ollama client, and the file utilities already wired up:

#!/usr/bin/env python3
"""
Command: myNewCommand
Process content your way!
"""

import argparse
from augments.lib.utils import get_desktop_path
from augments.lib.progress import track_progress, LoaderStyle
from augments.lib.llm import OllamaClient

def main():
    # Parse command line arguments
    parser = argparse.ArgumentParser()
    parser.add_argument("input", help="Content to process")
    args = parser.parse_args()

    # Process with progress indicator
    with track_progress("Processing", LoaderStyle.DOTS):
        result = process_input(args.input)

    print("โœจ Done!")

if __name__ == "__main__":
    main()
Python

3. Use Built-in Tools

The shared library covers the parts you’d write the same way every time anyway – progress, AI calls, file output:

# Show progress beautifully
with track_progress("Analyzing", LoaderStyle.PULSE):
    results = analyze_content()

# Process with AI
client = OllamaClient()
insights = client.generate("Explain this concept...")

# Save output nicely
path = get_desktop_path("analysis.md")
with open(path, "w") as f:
    f.write(format_results(insights))
Python

4. Real Example: RSS Feed Analyzer

A real example – a command that summarizes recent posts from any RSS feed:

from augments.lib.llm import OllamaClient
from augments.lib.progress import track_progress, LoaderStyle
import feedparser

def process_feed(url: str):
    # Fetch the feed with progress indicator
    with track_progress(f"Reading {url}", LoaderStyle.DOTS):
        feed = feedparser.parse(url)
    
    # Use a fast model for quick summaries
    client = OllamaClient(model="mistral")
    summaries = []
    
    # Process recent entries
    for entry in feed.entries[:5]:
        with track_progress(f"Summarizing: {entry.title}", LoaderStyle.PULSE):
            summary = client.generate(f"TLDR: {entry.description}")
            summaries.append((entry.title, summary))
    
    return summaries
Python

Run it with:

rssWisdom "https://example.com/feed.xml"

Get Started in Minutes

  1. Clone and install:
Bash
git clone https://github.com/gfargo/augments.git
cd augments
./install.sh --shell zsh  # or bash
  1. Set up your AI preferences:
# Choose your preferred AI model
export OLLAMA_DEFAULT_MODEL=codellama  # for code analysis
# or
export OLLAMA_DEFAULT_MODEL=mistral    # for quick summaries
  1. Start processing content:
Bash
# Analyze a YouTube video
youtubeWisdom "https://youtube.com/watch?v=..."

# Process clipboard content
clipboardAnalyze

# Or try your own commands!
./create_command.sh myCommand

Configuration Options

Tweak the environment to match how you work:

# AI Settings
AUGMENTS_DEBUG=1              # See what's happening under the hood
OLLAMA_DEFAULT_MODEL=llama2   # Your go-to AI model
OPENAI_API_KEY=sk-...         # Optional: Use OpenAI when needed

# Output Settings
DESKTOP_PATH=/custom/path     # Where to save processed content

Contributing

Issues, ideas, and pull requests welcome:

Screenshots

Like what you saw?

There's more where that came from.

Browse all projects
Fin.

griffen.codes

made with ๐Ÿ’– and โ˜•

ยฉ 2026all rights reservedupdated 50 seconds ago