✨ 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:
.WEBwas announced as far back as v1.1.0 — a single line in.HELPmarked "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.
.HELPlists 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
.BETTERand.VISIONrely 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~ 🥀