# Running IPFS Desktop and CLI simultaneously

**URL:** <https://discuss.ipfs.tech/t/running-ipfs-desktop-and-cli-simultaneously/11558>\
**Category:** Help\
**Tags:** ipfs-desktop\
**Created:** [June 19, 2021, 1:47pm UTC](https://discuss.ipfs.tech/t/running-ipfs-desktop-and-cli-simultaneously/11558 "2021-06-19T13:47:28Z")\
**Posts on this page:** 12\
**Page:** 1

<div class="post-metadata">

**Author:** ![nem25](https://sea2.discourse-cdn.com/flex020/user_avatar/discuss.ipfs.tech/nem25/32/5177_2.png) [@nem25](https://discuss.ipfs.tech/u/nem25)\
**Post date:** [June 19, 2021, 1:47pm UTC](https://discuss.ipfs.tech/t/running-ipfs-desktop-and-cli-simultaneously/11558/1 "2021-06-19T13:47:28Z")

</div>

This is a rather beginner question. Apologies for nothing more challening 🙂

I am running IPFS Desktop on my computer. I downloaded it via the Ubuntu Software Center. I believe it’s a snap install. I am using Ubuntu 20.04

I want to be able to access some of the CLI commands for the node that is being run via the IPFS Desktop but when I enter any `ipfs` command in the terminal, it says `command not found.` etc.

If I install the ipfs cli then it runs a different node through the terminal. Am I missing something obvious here? How can I access the IPFS Desktop node through the command line?

Thanks!

I have asked this question on stack here - [installation - Running IPFS Desktop and CLI simultaneously - Stack Overflow](https://stackoverflow.com/questions/68047179/running-ipfs-desktop-and-cli-simultaneously)  
Happy to update in either direction.

---

<div class="post-metadata">

**Author:** ![Jorropo](https://sea2.discourse-cdn.com/flex020/user_avatar/discuss.ipfs.tech/jorropo/32/3230_2.png) [@Jorropo](https://discuss.ipfs.tech/u/Jorropo)\
**Post date:** [June 20, 2021, 7:31am UTC](https://discuss.ipfs.tech/t/running-ipfs-desktop-and-cli-simultaneously/11558/2 "2021-06-20T07:31:00Z")

</div>

Idk about the snap, if your daemon is in a docker this might complicates things a bit (you would just need to forward the API).

But you can install the CLI from [dist.ipfs.io](http://dist.ipfs.io) aside of the desktop and call the desktop daemon perfectly fine (just match the version).  
Your desktop IPFS build has the same binary files somewhere under his internal folders.

---

<div class="post-metadata">

**Author:** ![lidel](https://sea2.discourse-cdn.com/flex020/user_avatar/discuss.ipfs.tech/lidel/32/9853_2.png) [@lidel](https://discuss.ipfs.tech/u/lidel)\
**Post date:** [June 22, 2021, 8:54am UTC](https://discuss.ipfs.tech/t/running-ipfs-desktop-and-cli-simultaneously/11558/3 "2021-06-22T08:54:05Z")

</div>

Quick solution: point the `ipfs` CLI client at the node run by IPFS Desktop by passing explicit API endpoint (`ipfs --api=/ip4/127.0.0.1/tcp/5001`). This will work even if your node runs in Docker or on a different machine in LAN.

Alternative is to set `IPFS_PATH` in your env to the directory used by IPFS Desktop. This is useful when your node runs on the same box and you need to run a command that does not work over API and requires direct access the repository (like `ipfs key export|rotate`).

---

<div class="post-metadata">

**Author:** ![ksaurus](https://sea2.discourse-cdn.com/flex020/user_avatar/discuss.ipfs.tech/ksaurus/32/5182_2.png) [@ksaurus](https://discuss.ipfs.tech/u/ksaurus)\
**Post date:** [June 22, 2021, 3:19pm UTC](https://discuss.ipfs.tech/t/running-ipfs-desktop-and-cli-simultaneously/11558/4 "2021-06-22T15:19:32Z")

</div>

Note that in Mac running IPFS Desktop will also run IPFS daemon which is accessible via command line. So it all has to do with your installation I think.

---

<div class="post-metadata">

**Author:** ![nem25](https://sea2.discourse-cdn.com/flex020/user_avatar/discuss.ipfs.tech/nem25/32/5177_2.png) [@nem25](https://discuss.ipfs.tech/u/nem25)\
**Post date:** [June 25, 2021, 8:30am UTC](https://discuss.ipfs.tech/t/running-ipfs-desktop-and-cli-simultaneously/11558/5 "2021-06-25T08:30:18Z")

</div>

Thank you all for your answers. I believe the problem was in installing it using snap store (Ubuntu Software Center) because this changes the default path of the installations. So in effect, the desktop and cli were installed at separate paths.

I followed the installation on the IPFS site which uses the install script and that put it in the correct path.

So I re-installed only the CLI and use the webUI in place of the desktop. Along with IPFS Companion, desktop is not really needed.  
But I still wanted the functionality of having the desktop run the daemon behind the scenes without having a terminal open, so I created the following service unit file to do that:

Paste the following code in the file `/etc/systemd/system/ipfs.service`

```auto
[Unit]
Description=IPFS Daemon
After=network.target

[Service]
Type=simple
ExecStart=/usr/local/bin/ipfs daemon --migrate=true
User=user
Restart=on-failure

[Install]
WantedBy=default.target

```

Then I simply ran `sudo systemctl start ipfs` in a terminal to get the daemon running as a service.

Thanks!

---

<div class="post-metadata">

**Author:** ![lidel](https://sea2.discourse-cdn.com/flex020/user_avatar/discuss.ipfs.tech/lidel/32/9853_2.png) [@lidel](https://discuss.ipfs.tech/u/lidel)\
**Post date:** [June 25, 2021, 9:59am UTC](https://discuss.ipfs.tech/t/running-ipfs-desktop-and-cli-simultaneously/11558/6 "2021-06-25T09:59:04Z")

</div>

You may want to enable automatic migrations:

```auto
ExecStart=/usr/local/bin/ipfs daemon --migrate=true

```

---

<div class="post-metadata">

**Author:** ![nem25](https://sea2.discourse-cdn.com/flex020/user_avatar/discuss.ipfs.tech/nem25/32/5177_2.png) [@nem25](https://discuss.ipfs.tech/u/nem25)\
**Post date:** [June 25, 2021, 11:20am UTC](https://discuss.ipfs.tech/t/running-ipfs-desktop-and-cli-simultaneously/11558/7 "2021-06-25T11:20:38Z")

</div>

Just to confirm since I’m a noob at IPFS, this is for updates to the CLI?

---

<div class="post-metadata">

**Author:** ![lidel](https://sea2.discourse-cdn.com/flex020/user_avatar/discuss.ipfs.tech/lidel/32/9853_2.png) [@lidel](https://discuss.ipfs.tech/u/lidel)\
**Post date:** [June 25, 2021, 11:38am UTC](https://discuss.ipfs.tech/t/running-ipfs-desktop-and-cli-simultaneously/11558/8 "2021-06-25T11:38:53Z")

</div>

Short answer: yes

Longer: this is for smooth updates when there is a new version of go-ipfs binary.

IPFS Desktop is a GUI that talks to the (go-ipfs) daemon.  
When you let Desktop app run and orchestrate IPFS node, it will run `ipfs daemon` for you, and it will pass `--migrate=true` to ensure your datastore is migrated each time Desktop app ships with updated daemon.

The setup you described is bit different, you run daemon on your own manually via systemd script. If there is an update of go-ipfs binary, the script will refuse to start and display an error informing you about required datastore migration. By passing `--migrate=true` you ask it to automatically apply any necessary migrations, so you don’t need to worry about running them manually .

---

<div class="post-metadata">

**Author:** ![techiechap](https://sea2.discourse-cdn.com/flex020/user_avatar/discuss.ipfs.tech/techiechap/32/8984_2.png) [@techiechap](https://discuss.ipfs.tech/u/techiechap)\
**Post date:** [March 15, 2025, 2:53pm UTC](https://discuss.ipfs.tech/t/running-ipfs-desktop-and-cli-simultaneously/11558/9 "2025-03-15T14:53:52Z")

</div>

Am bit confused the Desktop-IPFS shows 0.41 version where as ipfs cli installed shows 0.33 , am i missing something? however when trying to with --cask i get an error “It seems there is already an App at '/Applications/IPFS Desktop.app”

---

<div class="post-metadata">

**Author:** ![techiechap](https://sea2.discourse-cdn.com/flex020/user_avatar/discuss.ipfs.tech/techiechap/32/8984_2.png) [@techiechap](https://discuss.ipfs.tech/u/techiechap)\
**Post date:** [March 15, 2025, 3:07pm UTC](https://discuss.ipfs.tech/t/running-ipfs-desktop-and-cli-simultaneously/11558/11 "2025-03-15T15:07:22Z")

</div>

[The new url for official link](https://dist.ipfs.tech/#kubo)

---

<div class="post-metadata">

**Author:** ![lidel](https://sea2.discourse-cdn.com/flex020/user_avatar/discuss.ipfs.tech/lidel/32/9853_2.png) [@lidel](https://discuss.ipfs.tech/u/lidel)\
**Post date:** [March 20, 2025, 11:56pm UTC](https://discuss.ipfs.tech/t/running-ipfs-desktop-and-cli-simultaneously/11558/12 "2025-03-20T23:56:57Z")

</div>

[IPFS Desktop](https://docs.ipfs.tech/install/ipfs-desktop/) and [Kubo (`ipfs` CLI)](https://docs.ipfs.tech/install/command-line/) are two separate things.  
Each one uses different release versions:

- [Releases · ipfs/ipfs-desktop · GitHub](https://github.com/ipfs/ipfs-desktop/releases)
- [Releases · ipfs/kubo · GitHub](https://github.com/ipfs/kubo/releases)

IPFS Desktop already ships with embedded `ipfs daemon` – if you use embedded Kubo, then you will use version tied to IPFS Desktop.

For example, IPFS Desktop [v0.41.2](https://github.com/ipfs/ipfs-desktop/releases/tag/v0.41.2) includes Kubo [v0.33.2](https://github.com/ipfs/kubo/releases/tag/v0.33.2).  
In theory, you could swap the Kubo to a different version, but that is at your own risk.  
Desktop users should use tested Kubo version that ships with it.

---

<div class="post-metadata">

**Author:** ![techiechap](https://sea2.discourse-cdn.com/flex020/user_avatar/discuss.ipfs.tech/techiechap/32/8984_2.png) [@techiechap](https://discuss.ipfs.tech/u/techiechap)\
**Post date:** [March 22, 2025, 5:29pm UTC](https://discuss.ipfs.tech/t/running-ipfs-desktop-and-cli-simultaneously/11558/13 "2025-03-22T17:29:51Z")

</div>

Thanks for your reply, its quite annoying experience of pinning the files and view through public gateway,I end up screwing up all my local desktop and its configuration, its often unreachable, however the only feasible option is to upload using w3 on web3 storage, any thoughts [fun Project](https://bafybeibzfsdspvw6pvxmq4mj2sycxiaak2naaambxqvc7uuutglwvt6wui.ipfs.w3s.link/)
