# Pluto notebooks on Colab's kernel proxy port

**URL:** <https://discourse.julialang.org/t/pluto-notebooks-on-colabs-kernel-proxy-port/127576>\
**Category:** Tooling\
**Tags:** pluto, colab\
**Created:** [March 31, 2025, 9:48pm UTC](https://discourse.julialang.org/t/pluto-notebooks-on-colabs-kernel-proxy-port/127576 "2025-03-31T21:48:21Z")\
**Posts on this page:** 5\
**Page:** 1

<div class="post-metadata">

**Author:** ![metrizable](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/metrizable/32/215391_2.png) [@metrizable](https://discourse.julialang.org/u/metrizable)\
**Post date:** [March 31, 2025, 9:48pm UTC](https://discourse.julialang.org/t/pluto-notebooks-on-colabs-kernel-proxy-port/127576/1 "2025-03-31T21:48:21Z")

</div>

There has been [some](https://github.com/googlecolab/colabtools/issues/5167) [interest](https://discourse.julialang.org/t/julia-in-colab/126600/10) in using Pluto notebooks in Colab, and although I realize it’s not quite the fully supported experience that’s requested, I thought I’d share one approach to get going:

```julia
using Pkg

Pkg.add("Pluto", io=devnull)

```

```julia
using Pluto

port = 1234
@async Pluto.run(; port=port, require_secret_for_open_links=false, require_secret_for_access=false)

```

Then, using the same mechanism [exposed](https://github.com/googlecolab/colabtools/blob/2911acc043e1daaf345ed5d01344534fa4152cae/google/colab/output/_util.py#L126) in the `google.colab` Python library, one can obtain a link through Colab’s proxy to the host:

```julia
using IJulia

url = "https://localhost:$port"

display(HTML("""
<div id="js-output"></div>
<script>(async (port, element) => {
    var outputDiv = document.getElementById('js-output');
    const url = await google.colab.kernel.proxyPort(port);
    const anchor = document.createElement('a');
    anchor.href = new URL('/', url).toString();
    anchor.target = '_blank';
    anchor.setAttribute('data-href', url + '/');
    anchor.textContent = '$url';
    outputDiv.appendChild(anchor);
  }) (1234, window.element)
</script>"""))

```

We currently do not pre-install Pluto.jl, so install and startup takes a minute or so:

 ![4U7tL8TUiXRoDc2](https://global.discourse-cdn.com/julialang/original/3X/8/1/81f5b1ef59a5d7c75ed1c6208a178c528ef5ef1d.png)

Now, visiting the output link launches a Pluto notebook running on your Colab VM:

 ![Screenshot from 2025-03-31 14-27-54](https://global.discourse-cdn.com/julialang/original/3X/e/a/ea2cce3f69c14062f041f9c4e707dbad007ba77a.jpeg)

---

<div class="post-metadata">

**Author:** ![mgiugliano](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/mgiugliano/32/5818_2.png) [@mgiugliano](https://discourse.julialang.org/u/mgiugliano)\
**Post date:** [July 10, 2025, 8:03am UTC](https://discourse.julialang.org/t/pluto-notebooks-on-colabs-kernel-proxy-port/127576/2 "2025-07-10T08:03:21Z")

</div>

Does this approach still work? For some reason, opening the “output link” results in an empty page. I have tried with different browsers and switching off content blockers, but I don’t seem to get it working. Any suggestion would be precious.

---

<div class="post-metadata">

**Author:** ![lucassm](https://avatars.discourse-cdn.com/v4/letter/l/76d3ee/32.png) [@lucassm](https://discourse.julialang.org/u/lucassm)\
**Post date:** [July 11, 2025, 2:25am UTC](https://discourse.julialang.org/t/pluto-notebooks-on-colabs-kernel-proxy-port/127576/3 "2025-07-11T02:25:51Z")

</div>

Same issue here!

---

<div class="post-metadata">

**Author:** ![Mark\_Sprague](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/mark_sprague/32/217683_2.png) [@Mark\_Sprague](https://discourse.julialang.org/u/Mark_Sprague)\
**Post date:** [July 12, 2025, 3:38am UTC](https://discourse.julialang.org/t/pluto-notebooks-on-colabs-kernel-proxy-port/127576/4 "2025-07-12T03:38:49Z")

</div>

It works for me on an iPad. I copied the cells as posted here, and clicking on the link opened a browser tab with Pluto.

---

<div class="post-metadata">

**Author:** ![pitsianis](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/pitsianis/32/26588_2.png) [@pitsianis](https://discourse.julialang.org/u/pitsianis)\
**Post date:** [December 1, 2025, 2:29pm UTC](https://discourse.julialang.org/t/pluto-notebooks-on-colabs-kernel-proxy-port/127576/5 "2025-12-01T14:29:13Z")

</div>

I get a blank page on both Mac and iPad with the latest macOS. ☹
