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.
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.
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
Executar tudo, executar as células acima ou abaixo, reiniciar os runtimes e executar tudo de novo, limpar as saídas.
Inserir, mover e excluir células pelo menu da célula, cada ação em um passo que pode ser desfeito. As saídas acompanham a célula quando ela é movida.
Parar interrompe uma célula em execução e mantém as variáveis dela; se o código não parar em 3 segundos, o runtime é reiniciado. Toda execução tem um limite de tempo.
Variáveis lista todos os valores que seu código criou, com o tipo e um resumo.
Explicar e Corrigir: o assistente opcional no dispositivo explica uma célula ou sugere uma correção que você aceita ou rejeita como um diff.
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
As células podem pedir uma entrada (input(), prompt(), readline) e esperar sua resposta na página.
Os arquivos anexados à página estão disponíveis pelo nome: pd.read_csv("sales.csv"). Os arquivos que uma célula grava podem ser salvos na página ou baixados.
O Python vem com NumPy, pandas, SciPy, scikit-learn, matplotlib, Altair, DuckDB e mais, offline; %pip install adiciona outros depois que você permite a rede para aquela página.
Execute sua primeira célula de código no Vellum
Abra uma página
Crie uma página ou abra qualquer página que você já tenha.
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.
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.
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
Executar código em uma páginaPython, JavaScript, R, SQL e mais de 20 linguagens, neste dispositivo.
VariáveisVeja todos os valores que o seu código criou.
Compartilhar entre linguagensUse share() em uma tabela em JavaScript e consulte-a em SQL.
Entrada, arquivos e gráficosAs células fazem perguntas, leem seus arquivos e desenham gráficos.
Rede e pacotesAs células só acessam a web ou instalam pacotes se você permitir.
Trabalhe como em um notebookExecutar tudo, executar acima ou abaixo, mover e reiniciar células.
Explicar e CorrigirO assistente no dispositivo explica o código e sugere correções.
Linguagens offlineBaixe linguagens antes, para aviões e trens.
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.