Supporting Hook from Mentat: best practice?

One of the side-projects that I’ve been building since Mar '18 is an app called Mentat. I’d describe it as a “Knowledge Workstation” that is my response to apps like Tinderbox (I love the concept but cannot live with the app), Evernote (yes but I don’t think in notes), TheBrain (love the associativity but find it too confining). It’s also a distant cousin of Radio Userland if you remember that.

I know you guys have started supporting Tinderbox and I wondered what an app can do to help support Hook. Or are there things you would like apps to start doing to make Hook more powerful?


That sounds very exciting, @taonmatt !

Once automation of Hook itself is in place, there will be lots of ways for developers to extend its reach.

There have been requests for graphical views on the networks that Hook constructs. The Hook 1.3 popup window provides a list-based view that is like Finder Column view but one level deep at a time. We plan to build on that to show more than one degree in the window (without needing to focus on a link (which you can do now with right arrow key)). That will address some requests made here.

With Hook’s automation, it would be possible to generate dynamic graphs of networks of Hook data. Hook is conceived as bridge (or “glue”) software. So it would be in the spirit of Hook for Hook data to be used with existing or new graphical apps. Many apps already support JavaScript or AppleScript automation, so one could write software for them to use, represent and (soon) manipulate the network represented by Hook (which of course could also be combined with other information).

What Hook provides is quite general (linking), so there’s no end to the list/type of applications that could make use of its data.

We have enhancements planned for 2020 that will open up yet more possibilities. But first we have to deliver on previous indications we’ve given here on the forum. Once multi-mac sync is out we can say a bit more.

Okay that’s interesting.

Mentat makes extensive use of JavaScript, internally, for dynamic values, agent scripts, and tasks.

I personally don’t care very much for Javascript as a language but JavascriptCore is so darn convenient its hard to look past. That said, I may rethink this because it does not seem like I can implement any kind of debugging support (and expecting users to have, let alone use, Xcode seems unreasonable).

I haven’t given much thought to externally scripting Mentat because its already so internally scriptable. That’s a bit shortsighted of me. At a guess exposing some/all of the internal API should be possible. This will need some thinking about.

Is there a website / demo for Mentat? Or is it a private single-user app?

Not at the moment although I have been discussing it a little on my own Discourse site along with other knowledge management topics that interest me. I did some demo videos of much earlier versions, I really should do some more now that I am getting plausibly close to an alpha 1.0 release.

At the moment it’s a single-user Desktop app but I am actively working out how to use it in a network setting. Because of the nature of the app (think a scriptable, prototype-based, semi-structured, object database), there are many possibilities.

My current line of thought is to allow people to create ad hoc networks among hi-trust groups (using RSA encryption to ensure we are who we say we are). A Mentat workspace (the highest level grouping) gets subscribed to one or more topics and blessed Things then propagate across those topics to other subscribers workspaces. There are security considerations given that Things may contain agent scripts or be operated on by host agent scripts.

My aims for the app are relatively small: to solve a range of largely knowledge-synthesis type problems that I keep running in to and, if successful for me, to do so for others. It’s the 5th time I’ve tried to build this app since about 1997 and I think - I hope - I’ve cracked it this time. If I could live with Tinderbox I’d never have started again but my frustrations with it (I respect Mark and what he’s done a great deal, but his perspective and mine are not well-aligned) lead me to embark on 2 years of side-project development!

Hey Matt,

is this Mentat? So it took you about 20 years to develop this app? And now, about one year later, it is able to compete with products like Evernote, Tinderbox and The Brain?

I am deeply impressed :face_with_monocle:

Yep, that’s Mentat from last year sometime, I’d forgotten I’d left that video up.

I broke ground on this version in March 2018, so this is a little under two years progress (of the odd evening and weekend mostly). The first version was developed in Java/AWT and didn’t get all that far. Another stab in 2005 with Rails got close to being something but UI is not my field and it was really hard to do anything credible. Other attempts similarly fell short.

When I started Mentat I hadn’t done any Obj-C/Cocoa in about 10 years so things have gone a little slower than they might otherwise have done, but I’m not unhappy with the progress I’ve made. That said this thing has a lot of loose ends and design boondoggles that I will need to straighten out over time.


I - and I think, others too - am very curious about your app.

Perhaps you could make a new yt video of this version and tell a bit about how this program works and which problem it could solve?