DFX Dashboard - v2

- Project Highlights

DFX Dashboard is a GUI-based management tool that builds on the functionality of the dfx CLI, offering developers an intuitive way to create, manage, and monitor their Internet Computer (IC) projects. With powerful features like canister management, cycle tracking, network configuration, and version control via dfxvm, it empowers developers to streamline their workflows, reduce complexity, and focus on building impactful applications.

Why Choose DFX Dashboard?

DFX Dashboard eliminates the need to remember and execute complex CLI commands by providing an intuitive, visual interface. Tasks that typically require multiple commands, flags, and configurations in the CLI can be accomplished with just a few clicks in the dashboard. This is especially helpful for beginners or developers who want to focus on building applications rather than mastering dfx commands.

- Features

  • Unified Project Management: Create, import, and manage all your Internet Computer projects from a single, intuitive interface.

  • Effortless Canister Control: Deploy, monitor, and interact with your canisters using a user-friendly GUI, eliminating the need for command-line operations.

  • Simplified Identity Management: Easily create, import, and switch between multiple identities, ensuring secure and efficient development processes.

  • Integrated Cycle Management: Monitor cycle balances, convert ICP to cycles, and top up canisters directly from the dashboard.

  • Visual Network Configuration: Configure and manage your dfx networks through a clear, visual interface, allowing for easy customization and oversight of network settings.

    • Enhanced Network Management: Redesigned networks.json UI now includes a form-based editor in addition to the raw JSON editor.
  • Comprehensive Logging: Track your development history with detailed logs of all dashboard operations, facilitating easy troubleshooting and review of past actions.

  • GUI-Wide Network Switcher

    • Easily toggle between local and IC networks globally.
    • Alternate Network Configuration: Add and configure named networks in the settings.
    • Mainnet Indication: Bright, banner-style UI alerts inform users when calls are being made to the mainnet (IC network).
    • The globally active network applies to all functionalities like status updates, commands, top-ups, and cycle balance checks.
  • Version Control with dfxvm: Integrated with dfxvm, a version manager for dfx, allowing seamless management of multiple dfx versions:

    • List available and installed versions of dfx.
    • Download and install specific versions using a dropdown menu.
    • Switch between dfx versions as needed for different projects.

- How to Install

You can install DFX Dashboard by following the installation manual.

- Documentation

Docs: DFX Dashboard - Documentation
Quick Start: Quick Start Guide | DFX Dashboard - Documentation
Installation Guide: Installing DFX Dashboard | DFX Dashboard - Documentation

- Dependencies

Before installing DFX Dashboard, ensure your system meets these requirements:

  • Operating System:
    • macOS 10.15+
    • Ubuntu 20.04+
  • dfx: v0.21.0 or newer
  • Node.js: v14.0.0 or newer

- License

MIT LICENSE

- Resources

GitHub: GitHub - tolgayayci/dfx-dashboard: DFX Dashboard is a cross platform, electron based application designed to streamline the use of the dfx CLI.

- Future Plans

I will actively gather feedback from developers and the community to guide DFX Dashboard’s future development, ensuring it evolves to meet user needs and supports the growth of the Internet Computer ecosystem.

27 Likes

Wow. This is super cool and huge UX improvement for people just getting started.

A couple of issues/questions:

  1. I constantly use the logs scrolling across my dfx instance(I never run background and have a dedicated terminal where I can see everything. I’d love to be able to do that here as well. I guess in theory I can start my own and just use that without clicking start? I clicked start and the thing spun and the light stayed red, so maybe I did something wrong. I was able to run create for a canister so I think I did start it.
  2. Is there a place to run non-canister dfx commands?
  3. Maybe the app runs a dfx command to get logs in the background? I’m getting a bunch of dfx canister logs entries in my command history even though I don’t think I’m running them…or maybe I am by clicking i (in a circle)…but I think I’d want those filtered out.

Excited to play with it some more!

4 Likes

Very cool. It reminds me a little bit of Postman if you’re familiar with it? For me personally i hate having to type out long dfx calls to my canister especiallly if the args type is big. It would be cool if you could have something like postman where you drop in a candid file and type script def file and then DFX dashboard automatically parses it into a form for inputs.

Do you have discord? I’d like to connect and help you with the project

4 Likes

This is fantastic, I love it!

3 Likes

Wow, this is really exciting. Developing on ICP is becoming much more accessible :smiley:

1 Like

Hi @skilesare, thanks for trying out!

  1. Yes, your theory is correct, you can start your own dfx instance and just use that without clicking start but even in this case light should be green. Actually dfx dashboard looks for definite process on os and trying to understand if it works or not, while testing I noticed some of the dfx versions doesnt use same processes like other ones, so you can try with maybe 0.21.x and I will have a look to solve this problem.

    Also will implement dfx instance logs on future releases too. Which version are you using?

  2. Most of the pages uses dfx commands in background but you don’t have a interface like canisters, for which ones do you need this kind of solution?

  3. There are 2 types of logs on dfx dashboard.

    • Command History: Commands that you run in canisters page on dfx dashboard, reads from file system

    • Canister Logs: Classical dfx canister logs <canister_name>

    So if you see something that you didn’t run in your history normal because dfx dashboard runs many dfx commands to handle these kind of scenarios.

You can give us some ideas to build on next release, feedbacks are so valuable from community. You can write here or open a new feature request on github.

If you had any questions, let me know.

Hi @frederico02, very good idea!

Yeah I know postman and love that!! Can you give me a little more detail, if possible with an end to end example. I would love to discuss with team to build something like that on next release.

If you prefer you can open a feature request on github in detail or just write here.

Discord: @tolgayayci

Wow, thank you so much @Ajki

1 Like

Looks really cool - great work!

This idea is similar to @b3hr4d’s B3Forge. Maybe you guys can all collaborate to implement it into the DFX Dashboard.

2 Likes

My testing was with dfx 0.24.2-beta.0, so they likely swapped out the process name on you.

From a ‘let’s get everyone onboarded to the IC perspective’ I’d say all of them! There is something instructive. For about the first 10 years of my career, I was in the Microsoft universe and had nice UI’s and guis for almost everything. I had never, and didn’t ever, need to run a single command line tool, so even dfx --help was not something I’d do or think to do or be comfortable doing. I wanted to see a list of functions, click on them, see what I could enter, play with it, figure it out…but I wasn’t particularly comfortable with the command line. I think there are still a TON of those folks out there and especially non-programmers who’s minds would be set on fire simply by having a DFX tap that let them select any of the commands and scroll through their options visually.

These days it is much easier to operate on the command line and all the tools are better, but if we have a bigger bridge then more people will come over. You’ve built a bridge tool. Bravo!

For example…clicking on the dfx tab and selecting something like “cycles” or “info” or “ledger” would be highly instructive(and useful) to people wanting to better understand how to manage cycles, get info about the IC and their dfx, and/or how to interact with the ICP ledger.

Other issue: I noticed that the assist call function doesn’t populate if dfx isn’t running. I’m wondering if you could inspect the .dfx/local/canisters and pull the respective did from there if you don’t get a response from the dfx getting the metadata…some old canisters don’t publish this at the right place.

3 Likes

This new feature is absolutely amazing! :sparkling_heart:

Hi @jennifertran

You’ve asked me about demo video on another topic sometimes ago, I just uploaded that. You can have a look from here:

3 Likes

This will change my life

Thank you

1 Like

This is really amazing, hope it will be open source, will love to contribute

1 Like

it is :slight_smile: → GitHub - tolgayayci/dfx-dashboard: DFX Dashboard is a user-friendly GUI built on top of the dfx CLI, simplifying canister management, network configuration, and project workflows on the Internet Computer.

3 Likes

Awesome tool and accompanying documentation!

Would be neat to be able to trace local log output from the replica.

Additionally, people have been asking for a Candid UI with identity support for awhile (not just hitting canister endpoints with the anonymous principal), so maybe this is a good way to provide that functionality on top of or instead of the dfx canister call command?

2 Likes

great suggestion, i face this issue a lot too

great suggestion,
we need to understand ICP more

what particular features better than NNS for non-developers to use?