Can tinderbox create a stable link like devonthink's x-devonthink-item:// link

Can tinderbox create a stable link like devonthink’s x-devonthink-item:// link No matter how you move the document link will not change?

Did you try the Tinderbox URL schema? It was added to Tinderbox in about 2014.

Two ways to get such a URL, for a selected Tinderbox note:

  • Menu: Note ▸ Copy Note URL
  • Shortcut: ⌘+⌥+⌃+U

Note the URL uses the Tinderbox file’s internal path to the note. The URL as originally designed was to access items in already open documents. It’s not documented but I think that if the target TBX is closed but in the app’s MRU (Most Recently Used list: 10 items?) the app can open the doc when the URL is used.

Apps like DEVONthink and Bookends that also use such per-app pseudo-protocols don’t have the problem as they use database files and people tend to use only a very few discrete database files. I’ve got >600 TBX littered across my drives at present. It’s probably unrealistic for Tinderbox to track every TBX on the host system.

Again, I recall that if the URL is used and if the TBX location can’t be resolved, Tinderbox (or takes app focus) is opened without a file so you can find/open it.

Also, if the note is moved (to a different path) inside the target TBX the link with break.

I’m not sure if Hookmark might bridge the ‘where is the TBX?’ aspect of this. I’m not an active Hookmark user but there are some in the community who might have a better take on this.

@eastgate can correct me if I’ve missed anything out. I do wonder if using a (manually coded) Tinderbox pseudo-URL using a note ID without a path might work: Thus changing:


and removing the path element /Issues and adding an outline view request


might open Notes.tbx at a root outline and select the note with the $ID of ‘1429560859’.

1 Like

Maybe the stable link could be based on the IDString feature as mentioned .

Challenge is in how TBX knows which view do you open the note inside?

Why would $IDString be better? Currently, the link is generated internally by Tinderbox and is hard-coded to use $ID data. In the context of use $ID works fine, noting that $IDString is a hash based on $ID to give an ID in string form that is ‘safer’ for general use in action code where Number-type data might suffer an unexpected mathematical transform.

As you then note it is the display context for viewing the target. I don’t think those who wanted such a feature ever really worked that through. For instance, the link might be used either from another app in within Tinderbox. following the link what happens? Should it open a new window, a new tab or stand-alone (tear-off) window? for view other than map, does a view-based display open scoped to the parent object or as root with the path to the target expanded. and so on…

I suspect that until that is talked through use problems will persist.

A further aspect here is the differing nature of file use in Tinderbox compered to DEVONthink. Whist I’ve 2-3 databases each for DEVONthink and Bookends, in reality I use one for each. In contrast, I’ve >500 TBXs and I certainly am using many regularly enough that the 10-item ‘recently used’ list in the File menu doesn’t cover my list. c.30 files is probably a better reflection of my ‘current’ files. So, one we’re past one or two items, so what function what knows where the target files live? Tinderbox knows about the last 10 files opened (their local paths) but must it track every one of the hundreds of TBXs on my system? In addition, something like DEVONthink has one ‘view’; that view can be customised but Tinderbox has 8 (customisable) views, leading to the uncertainty I describe above.

I think the use case here is far from clearly defined. We know people want something that ‘just works’ but what that means isn’t clear. Having a link is the easy part. what happens when following such link is yet to be unambiguously established.

An update to this functionality is coming, perhaps in a few weeks.


As always appreciate your insights. You are right ! I totally forgot the $IDString could be unique only in a file and not from file to file.

Display context is indeed the right challenge for this

Great to hear from @eastgate on the same.

1 Like

I am looking forward to this feature