Atom default scripting editor on Macintosh - could BBEdit be a backup:

I don’t know where to ‘ask this question’ but scripting seemed as close as I could get?, so sorry …

I wonder what the “Listener” on Mac-Rhino ‘listens-for’ from the editor (“Atom”) when, in Atom (on a Mac) we do the “Ctrl-Option-r” (to get Atom to send the ‘currently-editing script’ to Rhino and then get Rhino to run that script?

I like Atom o.k. as text-editors go - but as a 10-20 year Macintosh user, I’m ‘more used to’ BBEdit (from Bare Bones Software)…

If I knew / understood more about how the Atom editor sends a ‘signal’ to the ‘listener’ in Rhino, then maybe I (like thousands of others who already have and use BBEdit) could make BBEdit talk to the Rhino Listener and run Python scripts I’m editing with BBEdit…

On the other hand maybe I don’t know what ‘trade-secrets’ I’m asking someone to reveal, and I wouldn’t want to do that?


I doubt we will have integrated support in BBEdit any time soon. We are currently focused on getting the communication between Rhino and Atom working and that is going to take some time to get ‘just right’.

What we are doing is making Mac Rhino act something like a local web server where it receives requests for autocomplete information from Rhino during different keystrokes in Atom. This requires us to write an add-on to Atom (and would require us to write an add-on for pretty much any text editor out there.)

If you know how to customize BBEdit with an add-on similar to what I am describing, we will be more than happy to help support you for writing such an add-on. There are no ‘trade secrets’ here; just trying to complete projects before taking on others so users at least have something useful instead of several useless prototypes.

Thanks VERY much for the quick and informative e-mail…

I THINK I could ‘focus some time’ to help make the ‘plug-in’ that you describe…

I THINK (and I obviously can NOT speak for the people at Bare Bones) but I “THINK” they might be willing to invest some time, and/or with your support and their support, MAYBE I could work on this?

I APPLAUD McNeel’s goal to ‘provide something that works (is useful), NOW’ for us Macintosh users, and we appreciate that… You’ve done a stellar job in the Macintosh support, so far…

I would be VERY INTERESTED in viewing what is involved in writing (and supporting over the long-haul) the plug-in that you describe?

Do you have any sort of a ‘white-paper’ and/or some documentation such as that - that I might review and evaluate if I have the knowledge, wisdom, skills to undertake such a project?

Very Sincerely Yours, VikingAsia

@Alain is the expert here; so I’ll defer to him for an answer.

We definitely don’t have any sort of ‘white paper’, but you can see what we are doing with the Atom add-on at

We basically have Rhino set up as providing a REST api for the atom add-on and I’m assuming something similar would need to be done for BBEdit. Since Alain is writing both the Atom add-on and the Rhino ‘listener’ portion, he is currently the only consumer of his own API. In other words, our API is not ‘written in stone’ right now and can change to meet the needs of a different editor.

if you want a quick (and dirty) way to run scripts from BBEdit in rhino, you could do it with a service made in

change 'service receives no input in" to bbedit instead of xcode…

the same applescript will work in other apps.
(assuming ⌘S in bbedit is save)

if possible to set shortcuts to menu items in bbedit, put a keystroke on the service… otherwise, set the keystroke in system preferences.

in rhino, you need to have a keyboard shortcut ⌘R for !_RunPythonScript test
…where test is the name of the python script open in bbedit… in this example, is in my rhino scripts folder.


Thanks SO MUCH! - this is a really good ‘start’ to the 'automation’
thing without the ‘plug-in’ ‘hassle’ that Steve talked about…

I’ll give this a try soonish…

APPRECIATE the support / e-mail / help very much



BBEdit or any other editor can get completion data from Rhino by implementing a simple API. Like Steve said the API can change but it’s very simple: everything you need to know is in this file:

I’m happy to answer any questions.