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 26 seconds ago