The AutonomiDweb App - one click access to Autonomi websites and web apps

The AutonomiDweb App is the easiest way to access dweb websites and web apps including some which featured in the first Impossible Futures competition, including the winner: Friends (a chat app by @riddim).

This is a simple GUI app for Windows, Mac and Linux.

Get AutonomiDweb

To access Autonomi dweb sites in a standard browser:

  1. Download the AutonomiDweb App for Windows, Mac or Linux from here
  2. Run the app (eg double-click in your file manager)
  3. Click the “Browse” button which will open your browser, and wait for the website to load (ignore the browser error message)

Check the “Auto-start” checkbox if you want the app start whenever you reboot, so after that you will always have the Autonomi dweb available.

The is no longer a need to use the command line unless you want the extra features it provides such as publishing dweb websites and apps.

Notes:

  • if your wallet was created using ant CLI (or imported into it) dweb-app will pick that up automatically. If it is password protected, you must start dweb-app from the command line in order to enter your password and unlock the wallet
  • Linux: you can either download and run the AppImage, or you can download the debian package and install it manually
  • MacOS and Linux: if you have SECRET_KEY set in your .bashrc won’t be seen when opening dweb-app in the file manager, but if you set it in your .profile it should be picked up

Browse websites on Autonomi

The easiest way to get started is to click “Browse” which will take you to a website which lists other dweb websites and apps.

Note: your browser will open with an error message until the website has been fetched from Autonomi which can take a minute or so. So you’ll need to wait a bit.

To open a website you can paste the address and click ‘Open’, or paste the built-in name if you know that.

Use dweb Apps

To use most dweb apps you will need a wallet with funds in ANT and Arb ETH so these apps can store data such as settings, or for uploading files. This costs very little, and for several apps payment is only needed the first time you run the app.

Set up a wallet

To use a wallet, you can either use one created by the ant command (Autonomi ant-cli), or you can set the environment variable SECRET_KEY as before. We are hoping someone will integrate wallet functionality (eg connect to MetaMask as used in Dave).

Get more dweb!

The AutonomiDweb App is the latest dweb project, designed to make it easy for everyone to browse websites and use apps.

More features are available for users and developers in other dweb projects, including publishing your own website on the dweb, and for developers wanting to build web apps that are easy for everyone to access in a standard browser.

The full set of dweb projects are:

  • dweb-app: an app for browsing the Autonomi dweb

  • dweb-cli: a command line app for publishing websites with additional utility features

  • dweb-server: a Rust lib so your app can open Autonomi dweb apps and websites in a standard browser

  • dweb-lib: a Rust lib containing core dweb features

In addition, dweb-server-tauri-app shows how to embed the dweb-server in a Tauri app:

All dweb projects are Open Source (AGPL), hosted here on Codeberg (an independent non-profit alternative to GitHub).

Thanks to all the devs and helpers

Several apps already use dweb in one way or another, including all three winners of the first Impossible Futures competition (Friends, Autonomi Browser Extension, and Colony by @riddim, @safemedia and @zettawatt).

All three of those have also contributed, either with PRs or suggestions and requests as well as many others in the community, too many to mention here but thank you all - including Autonomi of course :folded_hands:

26 Likes

What does this do that Colony and the Autonomi browser plugin didn’t already do?

2 Likes

offering dweb to regular users without 3rd party dependencies

4 Likes

It’s a similar proposition to, and logical step from the dweb-cli which predates Colony somewhat :wink:, and I believe it’s ok to have multiple apps with overlapping functionality.

This app focuses on one thing, which is to make the dweb (now the AutonomiDweb) as easy as possible for regular folk, particularly those new to Autonomi - easy to understand and get started with. It aims to do one thing well: get people browsing and using web apps directly on Autonomi. I believe that web apps are a better way to do everything else rather than have to download and run different local apps for different things.

Colony goes further, which is great but maybe not the best starting point for everyone? And not how I would choose to build extras, but that’s ok. Some will prefer a native app. However, this complicates things like wallet handling, which comes free for all web apps, and could be managed in one place with AutonomiDweb, which is much better for most users IMO.

So while I’d like to support extra things such as publishing websites without needing the command line, I’d probably choose to do this as a web app rather than native. That keeps the gateway simple and can make it really easy to do all manner of things, not just for publishing websites or updating a blog etc.

I hope that clarifies my vision and what I’d like to build if only I had the time!

My focus is to make things as simple to understand and use as possible, for everyone, and to appeal to as many people as possible.

However, I barely had time to put this together so nobody hold your breath!

@zettawatt, does your question suggest you are no longer seeing Colony as a failure, and will continue to develop it? I hope so.

5 Likes

Sounds good. I didn’t know if it did something additional that I was missing. Looks like a very clean easy to use interface. Tauri seems to be gaining quite the foot hold in these parts :smiley:

Colony as an app in its current form is dead. The network is too slow and unreliable to build a search index from pointers and scratchpads. Even fully threading the fetching operations, the performance is too poor for an average web2 user to appreciate its benefits. I am starting from first principles and investigating different technology stacks to build something proper. I didn’t have the time to go through this architectural evaluation for IF, but now I do, but this is a topic for a different thread.

5 Likes

I think that’s great, while again my approach is different.

Performance will I expect improve in the network itself without me doing anything. So, for now work on speed isn’t a high priority unless it involves easy wins (such as supporting caching in the browser). I do though have a list of areas I know dweb-server could speed things up, and some of the code was structured in anticipation of that.

It’s still good that you and others push this now IMO though, because it will show what speeds can be achieved with the techniques you develop, which will be good in the long run.

6 Likes

AutonomiDweb App v0.12.2

This is a minor update:

  • single instance only: if you try to run a second instance of dweb-app, the first one should be brought into focus instead of trying to start a second
  • updated to Autonomi stable-2025.9.2.1 (just in time for the next release :man_facepalming:)

Linux: note that the behaviour on some systems is different. On Ubuntu/Gnome for example starting the second instance creates a notification that the app is ready, and if you click on that the app is brought to the top.

Enjoy!

Get AutonomiDweb

To access Autonomi dweb sites in a standard browser:

  1. Download the AutonomiDweb App for Windows, Mac or Linux from here
  2. Run the app (eg double-click in your file manager)
  3. Click the “Browse” button which will open your browser, and wait for the website to load (ignore the browser error message)

Check the “Auto-start” checkbox if you want the app start whenever you reboot, so after that you will always have the Autonomi dweb available.

The is no longer a need to use the command line unless you want the extra features it provides such as publishing dweb websites and apps.

Notes:

  • if your wallet was created using ant CLI (or imported into it) dweb-app will pick that up automatically. If it is password protected, you must start dweb-app from the command line in order to enter your password and unlock the wallet
  • Linux: you can either download and run the AppImage, or you can download the debian package and install it manually
  • MacOS and Linux: if you have SECRET_KEY set in your .bashrc it won’t be seen when opening dweb-app in the file manager. But if you set it in your .profile it should be picked up

For more on browsing websites on Autonomi and other dweb features, see the OP

9 Likes

Super! The second time on 2 computers, I got in :slight_smile:

when the ANT - EHT shows on in the top line of the window the network handshake seems ok, but patients, takes minutes before the pages starts to load.

5 Likes

Due to user error I can not run the ANT commands. is that the only way to import the private key to AutonomiDweb?

2 Likes

You can set SECRET_KEY to your private key in you environment and dweb will use that.

1 Like

like this?

I’m not sure. In Windows I have set environment variables using the settings app but you can probably also do it in the shell provided you start dweb-app from the same shell afterwards.

You’d have to do that every time you open a new shell though.

Help….

sorry that exactly as i would have tried to do it

```$env:SECRET_KEY="<YOUR META MASK PRIVATE KEY>"```
1 Like

Ask chatgpt that you want to add an environmental variable in win 11 to all users, see if that works.

1 Like
# Add C# code for sending the system-wide environment change notification
Add-Type @"
using System;
using System.Runtime.InteropServices;

public class NotifyUser {
    [DllImport("user32.dll", SetLastError = true, CharSet = CharSet.Auto)]
    public static extern bool SendNotifyMessage(IntPtr hWnd, uint Msg, UIntPtr wParam, string lParam);

    public static void NotifyUserEnvironmentVariableChanged() {
        const int HWND_BROADCAST = 0xFFFF;
        const uint WM_SETTINGCHANGE = 0x001A;
        SendNotifyMessage((IntPtr)HWND_BROADCAST, WM_SETTINGCHANGE, (UIntPtr)0, "Environment");
    }
}
"@ -Language CSharp

# Function to set the environment variable for all users using .NET
function Set-EnvVarForAllUsers {
    param(
        [string]$VarName,
        [string]$VarValue
    )

    # Set the environment variable for the system using .NET method (affects new processes)
    [System.Environment]::SetEnvironmentVariable($VarName, $VarValue, [System.EnvironmentVariableTarget]::Machine)

    # Verify the value has been set (for the system environment)
    $envValue = [System.Environment]::GetEnvironmentVariable($VarName, [System.EnvironmentVariableTarget]::Machine)
    Write-Host "$VarName has been set to: $envValue"
}

# Set the SECRET_KEY environment variable to "xyz" for all users (system-wide)
Set-EnvVarForAllUsers -VarName "SECRET_KEY" -VarValue "xyz"

# Call the function to notify the system about the environment change
[NotifyUser]::NotifyUserEnvironmentVariableChanged()

Haven’t tried the above, but above P/Invoke low level API on windows can make the env. vars show up for new processes outside of Windows Explorer without a restart of host.

The C# code was taken from an earlier post by me noted here: Node Manager UX and Issues - #239 by Shu.

Thanks Shu. A bit complex for me let alone regular users!

When I last did this all you had to do was edit the environment variables using system settings. No restarts.

Surely that’s still possible for a user to do?

Yes, but perhaps the shell that Erik used didnt get the change notification to take place for the new env var when trying to launch dweb app immediately afterwards (as oppose to going to System Settings first, then opening a new shell (so it inherits the PEB block from the OS having the new knowledge of the new var)).

The code above was trying to mitigate a restart (depending what and where you set the env var), as those notification would be broadcasted out to a handle on any running app, and if the app respects that event change will become aware off the new env var, without having to restart the app or shell itself.

2 Likes

Thanks for explaining.

Erik said that he set the variable in the same shell just before starting the program. I get that to start the app elsewhere is a different matter.

His best option will be to set it through system settings, but it is odd that what he says he did would not work.

Cc @Erik_Hedin

1 Like

When back to the computer tomorrow I will feed the post above to an AI and hope it will guide into the mysteries of system settings :grinning_face:

1 Like