Show HN: I built a non-linear UI for ChatGPT (grafychat.com)

459 points by setnone ↗ HN
Hi HN,

I built this out of frustration of the evergrowing list of AI models and features to try and to fit my workflow.

The visual approach clicks for me so i went with it, it provides more freedom and control of the outcome, because predictable results and increased productivity is what I’m after when using conversational AI.

The app is packed with features, my most used are prompt library, voice input and text search, narration is useful too.

The app is local-first and works right in the browser, no sign up needed and it's absolutely free to try.

BYOAK – bring your own API Keys.

Let me know what you think, any feedback is appreciated!

138 comments

[ 4.6 ms ] story [ 260 ms ] thread
This is wild! What have you found it most useful for?

Have you tried a more straightforward approach that follows the ChatGPT model of being able to fork a chat thread? I could use something like this where I can fork a chat thread and see my old thread(s) as a tree, but continue participating in a new thread. Your model seems more powerful, but also more complex.

This is my daily GPT driver, so for almost anything from research to keeping my snippets tidy and well organized. I use voice input a lot to take my time and form my thoughts and requests, text-to-speech to listen for answers too.
Looks cool! How can I host it?
Thanks! Self-host package comes with Extended license
Curious why you settled on the BYOAK approach rather than a subscription approach
Subscription fatigue is real :)
I was thinking it was because it would be easier than keeping track of usage which I assume you would need to do with a subscription based model i.e. all users using your key.
(comment deleted)
I have to say, I didn't realize it was no subscription before I saw this comment. Makes it much more interesting from the start.

Yes, I hate subscriptions. Love your approach.

I also love that you focus on your strength which is the intuitive and flexible interface, rather than LLM or prompts or whatever. Like this its also very extensible, as every good tool should be.

The demo you shared shows you are creating child chat from the original parent chat. Have you tried something like connecting merging two child chats to create a subsequent child chat? Or maybe simply creating a child chat from a previous child chat?
Make sure to have very tight limits on any API key you provide to someone else. They could burn through tens of thousands of dollars each day if you do not have security in place.
I always feel like whiteboarding & concept mapping is better when it comes to generative AI, especially when it comes to the nature that we are chat in a "multimodal way" these days -- just think of old plain text SMS compared to mems links rich-text powered IM tools nowadays.

Congrats! you may also check flowith and ai.affine.pro for similar selling points.

Also, heptabase is good and they will definitely make a ai version soon or later.

I like this and wished openai or anthropic enabled similar in their UIs... it would be simple actually: "create a new chat from here"

Otherwise, great job! It's cool, but it's pricey and that is a personal deterrence.

I've pegged my thinking on software purchases to local McDonald's drive-thru menu equivalencies.
macdonalds is so overpriced, so I cannot condone this method :)
I find editing a previous question accomplishes this well, the existing UI already keeps all your previous edits in a revision tree.
Third-party clients support this. I like MindMac for instance - it's the "Fork from this message" feature.
[flagged]
This is the worst kind of feedback comment.

It's a damn ChatGPT front-end, do you expect it to be written in PHP?

Also, this site plays perfectly fine with uBlock Origin. If you're going to throw criticism out, at least verify that what you're saying is correct.

Honestly, reading your comment history, you really should be aware of the fact that most of what you're putting on this site is at least not positive, if not actually negative.

From watching the demo it looks interesting, but I figure I would get tired of dragging nodes around and looking for ones that I'm interested in. Does it allow searching?

It would be more interesting to me if it could use AI as an agent to create a graph view - or at least propose/highlight followup questions that self-organize into a graph.

Yes, search is one of my favorite features here, try '/' shortcut
> I would get tired of dragging nodes around

Me personally i find value in taking my time to organize and drag around, probably because i'm a visual thinker

For a text based version of the "tree of chats" idea, using Emacs, Org mode and gptel see `gptel-org-branching-context`in: https://github.com/karthink/gptel?tab=readme-ov-file#extra-o...
Of course, it can be done with emacs and org mode...

It's almost like every software or library will get ported to JavaScript eventually, with the difference, emacs and org mode was before.

Nice! This is really cool. Well done.
It looks like you put a lot of work into this but node based workflows are ok when they're a necessary evil and just an evil otherwise.

I'd be more interested in a tool where I can "add data" to it by drag and drop or folder import, then I can just type whatever prompt and the app's RAG system pulls relevant data/previous prompts/etc out of its store ranked by relevance, and I can just click on all the things that I want inserted into my context with a warning if I'm getting near the context limit. I waste a lot of time finding the relevant code/snippets to paste in manually.

For me this interface is canvas-based first, node-based second, meaning sometimes I might not even use connections to get my desired result from LLM but i have the place and form for the result and i know how to find it. Connections here are not set in stone like in mind mapping software for example, it's a tool.
> I'd be more interested in a tool where I can "add data" to it by drag and drop or folder import, then I can just type whatever prompt and the app's RAG system pulls relevant data/previous

This is something very similar to what i'm planning to add next, so stick around.

Well here’s a somewhat limited version of your idea and really only helps mitigate the copy/paste effort with coding: https://github.com/backnotprop/prompt-tower

My original idea was a DnD interface that works at the os level as a HUD… and functions like your idea but that is not so simple to develop.

This sounds a lot like my dream setup, We've been slowly building something along those lines. I've linked a video at the bottom that shows how we did something similar with an Obsidian plugin. Hit me up if you're interested in more details, we'd be happy to get an alpha user who gets it.

We've mostly had trouble explaining to ppl what exactly it is that we're building, which is fine, since we're mostly building for us, but still it seems like something like this would be the killer app for LLMs

Obsidian Canvas UI demo -> https://www.youtube.com/watch?v=1tDIXoXRziA

Also linking out Obsidian plugin repo in case someone wants to dive deeper into what we're about -> https://github.com/cloud-atlas-ai/obsidian-client

(comment deleted)
Very nice! Thanks for sharing, will definitely give it a try. I think we settled for chat interface to play with LLMs, but there's nothing really holding us back to try new ways.
Yeah, I'm annoyed that OpenAI has deprecated its text completion models and API. I think there's a ton of value to be had from constrained generation like what's available with the Guidance library.
Yes! this is what i've been thinking about!
Wow. I was so frustrated with chat that I was almost going to write something like this myself. Now I don't have to :)

Curious about the business model here though. How much sales have you had so far, if you don't mind me asking?

I built a similar demo to this but for images - IMO this is a much better structure for working with LLMs as it allows you to really riff with a machine instead of feeling like you need a deterministic "next step"

https://youtu.be/k_mJgFmdWWY

Sweet demo, you should do a Show HN! This is much more interesting to me, as the visual element makes much more sense here rather than just putting entire paragraphs in nodes.
The text nodes is also interesting, it's like a mind map, I can see how it could be great for learning, planning, collaboration, exploring...
Thanks for the encouragement! I just put up a post, hope other people like it!
Great stuff! That deterministic "next step" is the last line of defense for us humans :)
Looks amazing! The Unity client is quite sleek. I'd wager the creative play can be taken to the next level with a low-latency model like https://fal.ai/models/fast-turbo-diffusion-turbo
What I really want to do is make it model agnostic. SDXL was an easy choice at the time, but you could really easily just make it be a local model or any hosted visual model with an endpoint. The core idea is just tying an LLM to an image model and tying those to a force-directed graph, so really anything could be an input (or an output - you could also do it with text)
(comment deleted)
Looks good, I tried it out and it is indeed alpha in many regards(e.g. sometimes it does not save a picture on windows, sometimes it does not show the prompt, ..) , but the idea has potential. I would encourage you to keep working on it (and maybe keep in mind, that if this suddenly gets viral and you have no API limits in place, you might get poor quickly).
Yeah the idea was mostly to put a stake in the ground for an early UX experiment (I released it last year), but it's been in the back of my mind as something to continue experimenting with and honestly rebuilding for web in the custom game engine I'm working on.
Interesting choice of questions in the demo.

Are you from Nepal?

No but I'm a frequent visitor, i love the mountains there!
Interesting take! It does seem to address a typical "intermediate" workflow; even though we prefer linear finished products, we often work by completing a hierarchy first. I've been using Gingko [1] for years, I find it eases the struggle of organizing the structure of a problem by both allowing endless expansion of levels, and easily collapsing it into a linear structure.

In your case, do you hold N contexts (N being the number of leaves in the tree)? Are the chats disconnected from each other? How do you propose to transition from an endless/unstructured canvas to some sort of a finished, organized deliverable?

1: https://gingkowriter.com/

Great questions!

> In your case, do you hold N contexts (N being the number of leaves in the tree)?

It depends, contexts are just a form of grouping

> Are the chats disconnected from each other? > How do you propose to transition from an endless/unstructured canvas to some sort of a finished, organized deliverable?

RAG with in-app commands, i'm working on a local RAG solution, it's early but promising. Basically chat with all your data and applying a wide range of command on it.

Slightly OT, but there was a standalone software just like gingko for the Mac. Do you now something about it?

Edit: I think it was an old version of gingko as a desktop app. Still available at https://github.com/gingko/client/releases

Are you thinking of Bike?

https://www.hogbaysoftware.com/bike/

(Maybe not — this isn’t markdown first; but it is a very macOS-y, keyboard driven, hierarchical outliner that I enjoy.)

Bike looks very nice and it’s built on open file formats. I will try it out. Look at my edit above: it might be an old version of ginkgo. But I’m on my phone right now and can’t figure it out…
> How do you propose to transition from an endless/unstructured canvas to some sort of a finished, organized deliverable?

Why would they, though? For me as a potential user of this (and someone who thought about building a tool like this for myself), the tree (or better, a directed graph) is the desired end result.

> Gingko

A subscription pricing model for software where everything should stay on my machine is a no-go for me

looks packed with stuff, how long did it take u to build this?
i wish perplexity had a similar ui option. so I can out my research in multiple paths.
Didn't find it in the documentation. How would I go about if I want to self-host it for a small team of like 14 people?

Should I buy licenses for 14 (3x extended) instances, or 1 for all, where everyone can see everyone's conversations or are there accounts? I have a central ollama instance running and also Openai API keys.

Thank you.

> How would I go about if I want to self-host it for a small team of like 14 people

> Should I buy licenses for 14 (3x extended) instances

Yes that should work. Each license comes with 5 seat/activations. Each seat has its own copy of the data.

Super cool, would be great for prompt engineering and iteration
Thank you so much for building this, it's exactly what I was looking for!

Love the license instead of subscription model. Also loved that I can start trying right away without any hassle.

Couple suggestions:

I can't decide between Extended and Premium options. What does "premium support" mean?

Also, it only shows an upgrade option in the check-out page, perhaps it'd be interesting to include it in the FAQ and also the Pricing section.

Thank you!

> What does "premium support" mean?

Premium option includes prioritized support and access to new features that might be unavailable for other types of licenses.

I will update the website for more clarity.