# Speeding up flow creation via keyboard

**URL:** <https://discourse.nodered.org/t/speeding-up-flow-creation-via-keyboard/91092>\
**Category:** Feature Requests\
**Created:** [19 September 2024 05:54 UTC](https://discourse.nodered.org/t/speeding-up-flow-creation-via-keyboard/91092 "2024-09-19T05:54:32Z")\
**Posts on this page:** 14\
**Page:** 1

<div class="post-metadata">

**Author:** ![bakman2](https://sea2.discourse-cdn.com/flex026/user_avatar/discourse.nodered.org/bakman2/32/6207_2.png) [@bakman2](https://discourse.nodered.org/u/bakman2)\
**Post date:** [19 September 2024 05:54 UTC](https://discourse.nodered.org/t/speeding-up-flow-creation-via-keyboard/91092/1 "2024-09-19T05:54:32Z")

</div>

Node-red is very much drag and drop, although very nice, it is not fast when you have a large number of nodes installed in the palette.

I got a brainwave - what if you could use the `cmd-shift-p` command window to type in the nodes (with tab autocompletion) separated by a space and the editor adds them to the flow upon enter.

eg.

![image](https://us1.discourse-cdn.com/flex026/uploads/nodered/original/3X/8/4/84914b277a46afd67bdb6e3249fa060c8808803d.png)  
which would expand to (yes typo in mysl)  
 ![image](https://us1.discourse-cdn.com/flex026/uploads/nodered/original/3X/f/1/f1ce2f676f6d660bca2f95533fe32a9d5f9b8465.png)

Perhaps under a submenu, `create flow: ...` (to make it technically work in the current action window)

---

<div class="post-metadata">

**Author:** ![GogoVega](https://sea2.discourse-cdn.com/flex026/user_avatar/discourse.nodered.org/gogovega/32/71313_2.png) [@GogoVega](https://discourse.nodered.org/u/GogoVega)\
**Post date:** [19 September 2024 06:59 UTC](https://discourse.nodered.org/t/speeding-up-flow-creation-via-keyboard/91092/2 "2024-09-19T06:59:27Z")

</div>

The QuickAddDialog allows you to create nodes faster.

 ![Capture d’écran 2024-09-19 à 09.00.28](https://us1.discourse-cdn.com/flex026/uploads/nodered/original/3X/d/d/ddb9d5b5a64aeaf273b0ff20d67700856bbace36.png)

---

<div class="post-metadata">

**Author:** ![jbudd](https://avatars.discourse-cdn.com/v4/letter/j/5f8ce5/32.png) [@jbudd](https://discourse.nodered.org/u/jbudd)\
**Post date:** [19 September 2024 07:01 UTC](https://discourse.nodered.org/t/speeding-up-flow-creation-via-keyboard/91092/3 "2024-09-19T07:01:01Z")

</div>

It's hardly a CLI but if you drag a wire away from a node and drop it in empty space you get a dropdown choice of nodes to create there.

 ![image](https://us1.discourse-cdn.com/flex026/uploads/nodered/original/3X/e/f/efc6a62a90e1d4eb2378516bdb5d7c661a9f699f.png)

No idea how it chooses the nodes at the top, recent use maybe.

---

<div class="post-metadata">

**Author:** ![jbudd](https://avatars.discourse-cdn.com/v4/letter/j/5f8ce5/32.png) [@jbudd](https://discourse.nodered.org/u/jbudd)\
**Post date:** [19 September 2024 07:01 UTC](https://discourse.nodered.org/t/speeding-up-flow-creation-via-keyboard/91092/4 "2024-09-19T07:01:59Z")

</div>

Snap!

And we both get the same nodes at the top.

---

<div class="post-metadata">

**Author:** ![dceejay](https://sea2.discourse-cdn.com/flex026/user_avatar/discourse.nodered.org/dceejay/32/38_2.png) [@dceejay](https://discourse.nodered.org/u/dceejay)\
**Post date:** [19 September 2024 07:07 UTC](https://discourse.nodered.org/t/speeding-up-flow-creation-via-keyboard/91092/5 "2024-09-19T07:07:45Z")

</div>

The top 5 are fixed

---

<div class="post-metadata">

**Author:** ![Steve-Mcl](https://sea2.discourse-cdn.com/flex026/user_avatar/discourse.nodered.org/steve-mcl/32/4826_2.png) [@Steve-Mcl](https://discourse.nodered.org/u/Steve-Mcl)\
**Post date:** [19 September 2024 07:08 UTC](https://discourse.nodered.org/t/speeding-up-flow-creation-via-keyboard/91092/6 "2024-09-19T07:08:23Z")

</div>

The dream! Something like [emmet](https://emmet.io/) for Node-RED would be amazing. I've requested similar key entry and other ideas like parameterised flow templates but in the end, being 100% honest, the great majority would still drag and drop sadly.

---

<div class="post-metadata">

**Author:** ![GogoVega](https://sea2.discourse-cdn.com/flex026/user_avatar/discourse.nodered.org/gogovega/32/71313_2.png) [@GogoVega](https://discourse.nodered.org/u/GogoVega)\
**Post date:** [19 September 2024 07:14 UTC](https://discourse.nodered.org/t/speeding-up-flow-creation-via-keyboard/91092/7 "2024-09-19T07:14:44Z")

</div>

The problem with templates is that there aren't really any with NR.

What could be a good idea is to add the nodes to the workspace with a command (the purpose here). This saves time because we don't have to search for each node anymore.

---

<div class="post-metadata">

**Author:** ![smanjunath211](https://sea2.discourse-cdn.com/flex026/user_avatar/discourse.nodered.org/smanjunath211/32/95742_2.png) [@smanjunath211](https://discourse.nodered.org/u/smanjunath211)\
**Post date:** [19 September 2024 07:23 UTC](https://discourse.nodered.org/t/speeding-up-flow-creation-via-keyboard/91092/8 "2024-09-19T07:23:58Z")

</div>

Me in 2025....

'Hey Node-Red, add an inject node connected to a change node and a debug node and deploy'

---

<div class="post-metadata">

**Author:** ![jbudd](https://avatars.discourse-cdn.com/v4/letter/j/5f8ce5/32.png) [@jbudd](https://discourse.nodered.org/u/jbudd)\
**Post date:** [19 September 2024 07:36 UTC](https://discourse.nodered.org/t/speeding-up-flow-creation-via-keyboard/91092/9 "2024-09-19T07:36:48Z")

</div>

> [@dceejay](#):
>
> top 5 are fixed

A worthwhile enhancement for them to be customisable?  
The top 4 are also visible in the palette without scrolling.

---

<div class="post-metadata">

**Author:** ![bakman2](https://sea2.discourse-cdn.com/flex026/user_avatar/discourse.nodered.org/bakman2/32/6207_2.png) [@bakman2](https://discourse.nodered.org/u/bakman2)\
**Post date:** [19 September 2024 07:43 UTC](https://discourse.nodered.org/t/speeding-up-flow-creation-via-keyboard/91092/10 "2024-09-19T07:43:24Z")

</div>

Although I like it, but in reality it would take more time than dragging and dropping 😉  
'emmet' like interface would actually be very fast (if you are used to it).

---

<div class="post-metadata">

**Author:** ![dceejay](https://sea2.discourse-cdn.com/flex026/user_avatar/discourse.nodered.org/dceejay/32/38_2.png) [@dceejay](https://discourse.nodered.org/u/dceejay)\
**Post date:** [19 September 2024 13:15 UTC](https://discourse.nodered.org/t/speeding-up-flow-creation-via-keyboard/91092/11 "2024-09-19T13:15:51Z")

</div>

Are you offering ?

---

<div class="post-metadata">

**Author:** ![jbudd](https://avatars.discourse-cdn.com/v4/letter/j/5f8ce5/32.png) [@jbudd](https://discourse.nodered.org/u/jbudd)\
**Post date:** [19 September 2024 13:33 UTC](https://discourse.nodered.org/t/speeding-up-flow-creation-via-keyboard/91092/12 "2024-09-19T13:33:03Z")

</div>

Honestly I know I should.

I would do but JavaScript is not my native language, I'm more fluent in bash and sql.

I have previously got as far as forking (?) on GitHub but not written a single semicolon.

I need hand-holding!

---

<div class="post-metadata">

**Author:** ![TotallyInformation](https://sea2.discourse-cdn.com/flex026/user_avatar/discourse.nodered.org/totallyinformation/32/31_2.png) [@TotallyInformation](https://discourse.nodered.org/u/TotallyInformation)\
**Post date:** [19 September 2024 16:31 UTC](https://discourse.nodered.org/t/speeding-up-flow-creation-via-keyboard/91092/13 "2024-09-19T16:31:42Z")

</div>

> [@jbudd](#):
>
> but not written a single semicolon.

That's OK, I don't use semi-colons in JavaScript either! 🤣

---

<div class="post-metadata">

**Author:** ![system](https://us1.discourse-cdn.com/flex026/uploads/nodered/original/1X/d073cd938eafa2e558d7c2cd59003b3ef4963033.png) [@system](https://discourse.nodered.org/u/system)\
**Post date:** [18 November 2024 16:32 UTC](https://discourse.nodered.org/t/speeding-up-flow-creation-via-keyboard/91092/14 "2024-11-18T16:32:26Z")

</div>

This topic was automatically closed 60 days after the last reply. New replies are no longer allowed.
