DEV Community

Cover image for SkipIt: Cut the Noise with an Offline,Local AI Summarizer.
Faith Mugi
Faith Mugi

Posted on AI-assisted

SkipIt: Cut the Noise with an Offline,Local AI Summarizer.

Hacktoberfest Open-Source AI Challenge Week 3: Slow and Steady Submission 🦥

This is a submission for the Hacktoberfest Open-Source AI Challenge Week 3: Slow and Steady

What I Built .
We've all been there:

  • Sorting through a dense assignment brief right before a deadline.

  • Sifting through a chaotic class group chat filled with memes ,random banter, and buried somewhere in between-important cat and exam room confirmations from your class rep.

  • Staring at endless email threads packed with promotional junk from services you don't even remember signing up for ,trying to find that one crucial message.

Cloud AIs can summarize all of this ,but at what cost to your private data?
SkipIt was built to cut through all that noise ;delivering instant one-click summaries and ready-to-use copy-paste reply options running 100% locally on your machine.Zero cloud required.

Demo

Watch SkipIt process and summarize long text locally in real time:
Click here to watch the full SkipIt Demo Video on Streamable

Code

Below is the complete single-file implementation for SkipIt.It connects Streamlit directly to llama3.2 via Ollama on localhost:

import streamlit as st
import ollama

# 1. Page Configuration
st.set_page_config(
    page_title="SkipIt",
    page_icon="⚡",
    layout="centered"
)

# 2. Sidebar Setup
with st.sidebar:
    st.markdown("### ⚡ SkipIt Settings")
    st.caption("Local, private & effortless summarizing.")
    if st.button("Clear Conversation 🗑️", use_container_width=True):
        st.session_state.messages = []
        st.rerun()

# 3. Main Header
st.title("⚡ SkipIt")
st.caption("Reward your laziness. Effortlessly skip long texts, chaotic emails, and massive assignment briefs with local AI.")

# 4. Initialize Chat History
if "messages" not in st.session_state or len(st.session_state.messages) == 0:
    st.session_state.messages = [
        {
            "role": "assistant",
            "content": "✨ **Welcome to SkipIt.** Paste any long email, WhatsApp thread, or assignment brief below. I'll summarize it in 1–2 sentences and give you 3 quick copy-paste replies."
        }
    ]

# 5. Render Chat Messages
for message in st.session_state.messages:
    with st.chat_message(message["role"]):
        st.markdown(message["content"])

# 6. Chat Input (Bottom bar)
if user_prompt := st.chat_input("Paste text or ask a follow-up..."):
    # Display user input
    st.session_state.messages.append({"role": "user", "content": user_prompt})
    with st.chat_message("user"):
        st.markdown(user_prompt)

    # Generate response via Ollama
    with st.chat_message("assistant"):
        with st.spinner("Summarizing effortlessly with Llama 3.2..."):
            system_instruction = {
                "role": "system",
                "content": (
                    "You are SkipIt, an AI built for effortless luxury and rewarding human laziness. "
                    "When given long text, output a 1-2 sentence TL;DR and 3 polite copy-pasteable reply options. "
                    "For follow-ups, respond directly and concisely."
                )
            }
            try:
                response = ollama.chat(
                    model='llama3.2',
                    messages=[system_instruction] + st.session_state.messages
                )
                ai_reply = response['message']['content']
                st.markdown(ai_reply)
                st.session_state.messages.append({"role": "assistant", "content": ai_reply})
            except Exception as e:
                st.error(f"Error connecting to Ollama: {e}. Ensure `ollama run llama3.2` is running locally.")
Enter fullscreen mode Exit fullscreen mode

How I Built It

SkipIt was designed to offer simplicity ,zero cloud overhead and local privacy. The Architecture is split into two main layers:

1. The Frontend Interface. (Streamlit):

SkipIt was built using Python and Streamlit.I created a clean minimal user interface(st.text_area and st.button) that allows anyone to instantly paste whatever messy wall of text-like a long email thread or a chaotic group message-without dealing with complex web development frameworks.

2. The Local AI Engine. (Ollama + Llama 3.2)

Instead of sending my personal data to a paid cloud like OpenAI, I used Ollama to run Llama 3.2 locally on my machine.

  • Llama 3.2:This is the brain behind the operation. It is responsible for generating a 1-Sentence TL;DR summary from whatever the user has pasted and also provides 3-optional responses.

  • Ollama:This is the engine house. It downloads, hosts and runs Llama3.2 locally on your machine while providing a clean Python interface to communicate with the model.

Working together on local host ,this stack provides complete data privacy, zero API costs and 100% offline Functionality.

Why Does Open Innovation Matter?

Building SkipIt with open tools like Streamlit, Ollama and Meta's Llama 3.2 highlighted three major reasons why Open innovation is crucial:

1.Democratizing AI access.
Open innovation lowers the barrier to entry.
Cloud AI APIs charge for usage and require credits and subscriptions for advanced models limiting Students, hobbyists ,and Developers from emerging regions.

Open weight models Like Llama3.2 are offered at no cost to run, allowing anyone with access to a computer to build and experiment with no financial limits.

2.Complete Data Privacy and Ownership.
Reliance on cloud APIs data -whether from group chats, sensitive assignments and personal emails-all get transmitted and processed on someone else's servers. With a local set up, your data never leaves your machine.

Models like Llama3.2 run locally via Ollama on your own hardware eliminating the privacy risks associated-like data interception and third-party data collection or policies that state how user data is used for model training.

3.Community-Dirven progress and transparency.
Open-source frameworks like Streamlit and Ollama thrive due to global community contributions.

Bugs are caught faster, security vulnerabilities are patched collectively, and tools remain adaptable because they aren't tied to the roadmap of a single propriety vendor.

My Agent Session

Building SkipIt was a really fun experience in learning how to pair up with AI to build fast, offline tools.

Instead of just asking an AI to do the heavy lifting, I used my AI coding partner as a sounding board to design the local workflow, debug Streamlit layout tweaks, and refine my system prompts.

  • Dialing in the System Prompt: I spent time fine-tuning the instructions for Llama 3.2 so it doesn't give long, rambling responses. I kept pushing until it strictly delivered a clean 1-sentence summary and 3 quick, natural-sounding reply options.
  • Choosing Local Over Cloud: We talked through the trade-offs between cloud APIs and local setups. Running everything through Ollama on localhost ended up being the obvious choice—it keeps data completely private, costs zero shillings, and works even when you're completely offline.

The Lazy Payoff

SkipIt was built for anyone who just wants to stay in the loop without spending hours reading walls of text. Here’s what it actually saves you:

  • Time Normally spent Every Day: No more wading through massive 50-message WhatsApp group chats or long-winded email chains just to figure out what happened.

  • No More Staring at a Blank Screen: You instantly get 3 quick reply options ready to copy and paste, so you don't have to overthink what to text back.

  • Zero Cost ($0): No subscriptions, no API tokens, and no hidden fees—it runs 100% free on your own laptop.

  • Total Peace of Mind: Your messages stay right on your device. Nothing gets sent to third-party servers or stored anywhere else.

Prize Categories

  • Hacktoberfest Open-Source AI Challenge (Primary Track)
  • Best Use of Open-Weight AI (Llama 3.2 via Ollama on Localhost)

Team

  • Solo Submission:Built and Developed entirely by myself as an independent developer using local open-source tools.

Top comments (2)

Collapse
 
chebitoch007 profile image
Eliphaz Chebitoch • • Edited

clean pitch. quick question; the "How I built It" section mentions st.text_area and st.button but the code uses st.chat_input, did you switch UIs after writing that part?

Collapse
 
faith_mugi_ profile image
Faith Mugi •

Not really.I rather refined the UI using st.chat_input to make it a bit more interactive. I simply used st.text_area and st.button during my building process