Skip to content

From Chat to Colleague

Latest

Choose a tag to compare

@Shivansh779 Shivansh779 released this 08 Sep 08:00

✨ From just a Chatbot to Being your Colleague

"Give Solaris a file, and let's work with it."

This release turns Solaris from a pure chat assistant into something that can actually read your files and see your pictures.


📎 File Attachments

Solaris can now read files you drop into the conversation. One .ATTACH and the file becomes part of the session's context — something Solaris can quote from, reason over, and build answers from.

.ATTACH /Users/you/Desktop/class_notes.md
.ATTACH /Users/you/Desktop/report.pdf
.ATTACH /Users/you/Desktop/screenshot.png

What each type is good for:

Type What Solaris does with it
.md Reads the full text, word for word — great for notes, skill files, preferences, task briefs
.pdf Extracts text page by page — reports, textbooks, assignments (as long as they have real text)
.jpg .jpeg .png Validates the image and reads its metadata — ready for .VISION

Deliberately temporary. Attachments live for the session and disappear when you close the chat. No database writes, no long-term memory pollution. If you didn't ask to keep it, Solaris doesn't — so your permanent memory stays clean and about you, not about random files you happened to open.

🗑️ Detachments

Changed your mind — or made a mistake? .DETACH puts every current attachment in a numbered table and lets you remove exactly the one you don't want.

.ATTACH a.md
.ATTACH b.pdf
.ATTACH c.jpg

.DETACH
# ┌── Attached Files ──────┐
# │ #  │ File Path         │
# ├────┼───────────────────┤
# │ 1  │ a.md              │
# │ 2  │ b.pdf             │
# │ 3  │ c.jpg             │
# └────┴───────────────────┘
# → Serial number: 2
# → Removed attachment: b.pdf

Clean removal, honest feedback, and the rest of your session context is untouched. You stay in control of exactly what Solaris is "holding" at any moment.

.BETTER, now context-aware & personal

.BETTER was already your best-answer-on-demand — but it asked blind. Now it knows your files.

You choose what matters. Before anything happens, Solaris shows your attached files and asks which ones .BETTER should take into account:

.ATTACH ~/Desktop/physics_notes.md
.ATTACH ~/Desktop/homework.pdf
.BETTER help me with today's task

# → shows: 1. physics_notes.md   2. homework.pdf
# → How many files to use? 2
# → Pick: 1, 2

Smarter questions for your level. .BETTER doesn't just dump an answer — it interviews you first through the Strategist. And it now shapes those questions around your files: attach your own class notes on a topic, and the questions adapt to your notes, your phrasing, your level of detail — instead of generic textbook questions that assume nothing about you. It can ask about the exact concept you highlighted, clarify the part you're stuck on, and zoom in on your specific task instead of the topic in general.

Specialists that see what you see. The Writer, Programmer, and Strategist all read the files you selected, so their answers are grounded in your actual material — your notes, your code, your task brief — not a guess about what you meant. No more "here's a generic essay" when you handed it your own draft.

Zero friction when you don't need it. One file attached? It's used automatically, no prompts. No files? .BETTER works exactly as before — nothing broke, everything gained.

👁️ .VISION — image analysis

The showstopper. Attach an image, then ask a question about it — and Solaris actually looks.

.ATTACH ~/Desktop/screenshot.png
.VISION what's wrong with this error message?

.ATTACH ~/Desktop/quiz_diagram.jpg
.VISION explain what this diagram is showing

Two capable eyes behind it. Primary is Kimi-K3; if that fails, Solaris silently falls back to Llama-3.2-90B-Vision — both powered by NVIDIA NIM. You never see the plumbing; you just get an answer. As always, If you desire to switch to a model of your preference, You can do it by just updating the config.json file, and writing your preferred model and provider's name there!

Built for real workflows, not demos:

  • Multiple images — attach several and it considers them together ("compare these two")
  • One image, zero friction — a single attachment is used instantly, no picker
  • Smart model handling — it knows Llama's per-request limit and adapts automatically
  • Configurable — the models live in config.json, so you can swap in another vision model anytime without touching code
  • Honest when unsure — the prompt tells it to say so when an image is unclear, rather than inventing details

Every call is logged to System_Logs.txt, so if something goes wrong, you've got a paper trail.

🔎 .WEB — Web Search

The promise that's been sitting in .HELP since v1.1.0 as "WIP" finally has an engine behind it.

.WEB india's next cricket match
.WEB:quick coffee filter experiment
.WEB:deep quantum computing explained for beginners

Depth you control. Search isn't a one-size box anymore — you pick how thorough Solaris should be:

Syntax Results When to use it
.WEB:quick <q> 3 sources Fast check — facts, status, quick lookups
.WEB <q> 5 sources Everyday research, balanced speed vs breadth
.WEB:deep <q> 8 sources Heavy duty — compares multiple sources, cross-referenced

Two engines, one seamless result. Primary is Tavily, with Firecrawl as automatic fallback — if one provider is down or rate-limits you, Solaris silently retries with the other. You never see the switch.

Synthesis, not spam. Solaris doesn't dump a pile of links — it reads the sources, synthesizes one coherent markdown answer that quotes the best material, then shows you the source list so you can verify.

Honest about recency. Chat memory is training data + conversation; .WEB is the reality check — real-time answers to questions Solaris genuinely couldn't know.

Every search is logged to the web_log table — query, provider, depth, sources — so you always know where an answer came from.

Note for the curious: .WEB was announced as far back as v1.1.0 — a single line in .HELP marked "WIP". It stayed that way through v1.1.1. This release is where the placeholder finally grew real legs: two providers, three depths, a synthesized-answer pipeline, and permanent search logs. Added back in v1.1.0, skipped for two releases, delivered properly here.

🗂️ Response Commands

.BETTER gives you a specialist; these give you a personal teacher, on demand. Released under the pen name Response Commands, they turn Solaris into a study companion for any topic — no attachments, no setup, just a command and a subject.

.DETAIL photosynthesis
.SIMPLE what is a black hole
.QUIZ world war II
.TIMELINE the roman empire
.COMPARE python vs java
.STEPS how to solve a quadratic equation

Six modes, six ways to learn:

Command What you get Best for
.DETAIL <topic> A full college-lecture-style breakdown with analogies, structure, and thought questions Actually learning something properly
.SIMPLE <topic> The same idea stripped to plain language, no jargon Quick understanding when you're short on time
.QUIZ <topic> A 10-question quiz with answers Testing yourself, exam prep
.TIMELINE <topic> Key events in chronological order History, progressions, cause-and-effect
.COMPARE <topic> Side-by-side comparison "Which should I use/choose?" decisions
.STEPS <topic> A process broken into ordered, explained steps How-to's, procedures, workflows

Built on the same engine. Each mode is a purpose-built prompt fed to the same specialist-grade model pipeline .BETTER uses — dual providers, automatic fallback, consistent quality.

Rendered beautifully. Each mode has its own dedicated renderer in the new TUI — quizzes come back as formatted question cards, timelines as structured sequences, steps as numbered guides, comparisons as proper side-by-side tables. Not a wall of markdown, designed output.

📺 The Panelized TUI

The whole interface got a visual identity. tui_utils evolved from a few scattered print helpers into a real panelized rendering system — every response, table, and prompt now lives inside clean bordered panels.

What changed:

  • Paneled responses — every AI response arrives in a titled, bordered box with a subtitle, instead of raw text bleeding onto the terminal
  • Native markdown rendering — tables, inline code, bold, headers all render properly instead of showing raw **syntax**
  • Smart tables — auto-styled tables with column alignment and markdown-aware cells, used everywhere: attachments, detach lists, file/image pickers, .COMPARE
  • Specialized viewers — history-style timelines, quiz cards, step guides, each rendered with its own format
  • Proper prompt boxes — consistent labeled input frames for every interactive step (file paths, counts, questions), with re-prompting on invalid input built in

Why it matters. Two releases ago, .BETTER and friends printed plain text. As Solaris grew commands, the CLI was turning into a wall of undifferentiated text. Now every action is visually scoped — you can tell at a glance where a response starts, what it's answering, and how to act next. The same feature knowledge, a much calmer screen.

🧠 UX Niceties

  • Whispered suggestions, not banners. Attachment tips now render in dim grey — a quiet nudge instead of a bright yellow shout at every attach.
  • Solaris talks like Solaris. Rewrote the tips so they sound like the assistant itself giving friendly advice — not a software manual.

"File attached is a markdown file. I recommend using .BETTER for better results if the markdown file is a SKILLS/USER file that provides context, in-depth details or preferences for a task."

"An Image file was attached. I recommend that you use .VISION and follow up with a question, if you want to analyse this picture, or any other picture attached."

  • Discoverability kept honest. .HELP lists every new command; the README documents them end-to-end.

🧪 Tested

43 automated tests cover the full pipeline:

  • Every file type — valid and invalid, empty and corrupted
  • Attachment, detachment, and the picker flow
  • The subset-selection logic .BETTER and .VISION rely on
  • The guarantee that attachments never write to permanent memory

📜 What This Means, vs. What Came Before

To place this release, here's the honest story of the last three:

Release What it brought
v1.1.0 .BETTER specialists debut (Writer, Programmer, Strategist), config-driven model selection, and the .WEB announcement — a single WIP help-line, no engine
v1.1.1 Bug fixes, hardened specialist/fallback paths, and the first seeded TUI changes — quieter release, groundwork only
v1.2.0 (now) Response Commands, panelized TUI, .WEB delivered for real, file attachments, .DETACH, .VISION, and context-aware .BETTER

Expected but underdelivered. v1.1.0 advertised .WEB in help but shipped no search engine — the promise sat untouched through v1.1.1. v1.2.0 finally honors it: three depths, two providers, synthesized answers, permanent logs. The road to a working search was almost all invisible; users were told a feature existed and then left waiting. One of the reasons this release is numbered a "2.0" rather than a hotfix is that the gap between announced and delivered finally closed.

Expected and deepened. .BETTER debuted in v1.1.0 as raw specialist calls — pick a specialist, get an answer, done. Here it's the smartest thing in the app. It went from a router ("which specialist?") to a collaborator: you pick the files it considers, and it adapts its interview to your material and your level. The skeleton from v1.1.0 is now holding real furniture — and it was the placeholder announcement (.WEB) that, ironically, took the longest to build.

Brand new with no history. Files, vision, and the six study modes — none of these existed, even as placeholders, before this release. That's the biggest structural shift in Solaris since v1.1.0's specialist system: the chatbot is no longer confined to a conversation window. You can hand it documents, show it pictures, point it at the live web, and put it to work on your material rather than just answering in the abstract.

The quiet shift underneath. v1.1.0 and v1.1.1 were both about routing — which provider answers, which model falls back. v1.2.0 shifts the center of gravity to input. For the first time, what Solaris knows isn't limited to memory alone; it's whatever you choose to show it. That single philosophical change is what makes attachments, vision, and web search feel like one release rather than three.


Try it

python chatbot.py

.ATTACH /path/to/notes.md
.BETTER Summarize my notes

.ATTACH /path/to/screenshot.png
.VISION what does this diagram explain?

In the next update, I hope to integrate setting.json into the actual program! A lot of thanks for following the development!

Made with lots of Testing, Debugging, Brain-Frying, and asking AI~ 🥀