Pular para o conteúdo
VellumAbrir o Vellum

Execute código em 25 linguagens, dentro de uma página.

Um bloco de código delimitado em uma página vira uma célula que você pode executar. O código continua sendo Markdown puro; saídas, tabelas e gráficos são salvos com a página. Tudo roda em uma sandbox no seu dispositivo.

Uma página do Vellum com uma célula JavaScript que compartilha uma tabela e uma célula SQL que soma seus valores, ao lado do Markdown da página.
Uma página do Vellum com uma célula JavaScript que compartilha uma tabela e uma célula SQL que soma seus valores, ao lado do Markdown da página.

Código que mora nas suas páginas

Escreva um bloco de código delimitado com uma linguagem, como faria no GitHub ou no Obsidian. Na visualização de leitura ou dividida, ele vira uma célula com um botão Executar. O código fica no Markdown da página, então as páginas continuam portáteis; o que uma célula imprime, as tabelas que retorna e os gráficos que desenha são salvos com a página e voltam quando você a reabre.

```python
import pandas as pd
runs = pd.DataFrame({"month": ["Jan", "Feb", "Mar"], "km": [42, 51, 63]})
runs.describe()
```

25 linguagens, no seu dispositivo

JavaScript, TypeScript, Python, SQL, Lua, Shell (emulated), Ruby, PHP, R, Perl, Go, Rust, C, C++, OCaml, Haskell, Zig, C#, F#, Java, Clojure, Elixir, Erlang, Scheme, Prolog.

Cada linguagem é baixada na primeira vez que você a executa (de algumas centenas de kilobytes para Lua ou JavaScript a algumas dezenas de megabytes para Rust) e depois funciona offline. Configurações → Runtimes de código baixa todas com antecedência, para aviões e trens.

O código roda em um frame isolado em sandbox, com um worker por página e linguagem. Ele não consegue ler o app, suas outras páginas nem a rede: as células não têm acesso à rede a menos que você permita para aquela página.

Trabalhe como em um notebook

Compartilhe dados entre linguagens

As células de uma página podem passar dados umas para as outras entre linguagens: share(name, value) em uma, use(name) em outra. Tabelas chegam como tabelas: compartilhe linhas a partir do JavaScript e depois consulte-as em SQL.

```js
share("runs", [{ month: "Jan", n: 4 }, { month: "Feb", n: 7 }])
```

```sql
select sum(n) as total from runs;
```

Entrada, arquivos e pacotes

Execute sua primeira célula de código no Vellum

  1. Abra uma página

    Crie uma página ou abra qualquer página que você já tenha.

  2. Escreva um bloco de código

    Digite três crases e o nome de uma linguagem, por exemplo ```python, depois seu código e, para fechar, mais três crases.

  3. Execute

    Mude para a visualização de leitura ou dividida e pressione Executar na célula (ou Shift+Enter no editor da célula). A linguagem é baixada na primeira vez.

  4. Guarde o resultado

    A saída é salva com a página. Abra o menu da célula para Executar tudo, Variáveis e os outros comandos de notebook.

No app

Perguntas

Ele substitui o Jupyter?

Para muitos notebooks, sim: ele abre e exporta arquivos .ipynb e mantém as saídas. Ele roda versões WebAssembly de cada linguagem no navegador, então computação pesada, GPUs e alguns pacotes nativos ainda precisam do Jupyter. Veja Vellum e Jupyter.

Meu código tem acesso à internet?

Não, a menos que você permita. Uma célula que tenta acessar a web pergunta antes (uma vez, sempre para esta página ou nunca), e cada requisição fica registrada embaixo da célula.

Funciona offline?

Sim. Cada linguagem é baixada uma vez, na primeira vez que você a usa, e depois fica guardada no seu dispositivo. Você pode baixar todas com antecedência nas Configurações.