What alternative options are there to using the Desk UI

Hello,

I am curious if there are any alternatives to using Frappe Desk UI for development?

Basically what other options are there to do anything that can be done through Desk UI, be it from a CLI, programmatically or through an API.

Imagine you just had to avoid using the Desk UI.

Thanks!

Any information would be very appreciated.

Hi @vaeho:

Maybe I don’t understand your query … Desk UI is mainly used for “low-code” development purposes. For “regular” develop tasks you will need a code editor, configure your bench with development_mode, etc …

Almost all development changes are stored in file system. You can create/edit those files directly without the Desk.
If not via file system, almost everything can be manipulated with an API that you can write a Python for and run in a terminal.

If you shared your use casr or your end goal, most likely you’ll get more specific help

Hi, I am just getting familiar with Frappe and ERPNext. What I was assuming is that by default for actions like creating Doctypes and such you had to use the Desk UI.

I am curious if that’s not the case. If I wanted to create new apps with Frappe framework, or customize ERPNext do I not have to go through the Desk UI? I do not want low-code.

If that’s the case could you point me to any tutorials/guides or documentation?

Thanks!

Hi, my goal is to completely avoid user interface interactions. If it’s programmatic like editing code files, calling APIs or using the CLI then that’s fine. I am just looking for any documentation/tutorials.

From the documentation I saw about the Frappe framework, it’s using the Desk UI which for example during Doctype creation automatically creates the necessary files and applies migrations, so I need documentation for how to do that without the Desk UI.

Thanks!

The desk interface is itself calling APIs, so you could just use the APIs to create doctypes etc.

Standard REST APIs to create/update documents would work just fine.

That’s one of the workarounds I was thinking as well. Could you point me to that specific documentation please?

Here are the standard REST APIs available for any doctype (including “Doctype” doctype): REST API

This would allow you to create/update/read/delete documents in the system.

For other APIs, we have a tool called Commit: Commit - Developer tooling for the Frappeverse - this would allow you to search for other endpoints available within Frappe (or any other Frappe app). Some of the documentation is generated automatically via ChatGPT. It also has a database ERD viewer if you need to see the database relationships visually.

1 Like

If your goal of avoiding UI interactions is to fully customize, in depth, an app or set of customizations, still it’s safe/better to use the Desk and then customize/develop beyond the Desk. The Desk won’t limit your journey.

I am trying to develop an automated customization layer on top using AI so the UI is a bit of an obstacle since I want to access all of the functionality programmatically.

Yeah that’s what I thought you were trying to achieve. You can have a look at the documentation I shared above.

We have added an AI layer on our chat app called Raven - https://www.ravenchat.ai/ - it uses function calling to make/update documents within Frappe. The code for this specific function calling can be found here: raven/raven/ai/handler.py at develop · The-Commit-Company/raven · GitHub

Thought it would be helpful for you.

1 Like

Actually, I expected so :grin: when I asked about the end goal, I was going to write various reasons such as automated provision or an MCP or an automated development flow like from Jira Stories / Tasks to Code.
IMO, the Metadata-driven nature of the framework might make it very feasible, but come on, you know you’ll need to learn/master the framework well before any automation

1 Like

That’s fair! I have worked with Odoo for a bit in the past but chose to go with Frappe for this project since it’s fully open source and I like the UI much more.

What I’m trying to do is build an agent that can customize ERPNext, but not being familiar with the it definitely isn’t helping :smiley:

If you can point me to any resources where I can learn what I need asap I’d appreciate it a lot.

This repo is just a few days old so I don’t know how much content they already got but looks comprehensive enough

Hi:

Here you will find tons of stuff.

Enjoy :slight_smile:

2 Likes