Skip to content
Software engineerPorto, Portugal

~SETUP

The bench never closed.The bench never closed.

It started with opening computers to see how the parts fit. These are the parts I work with today: the desk, the agents, and the homelab that keeps every model I try one line of config away.

~/setupzsh

joao@porto ~ % neofetch

joao@porto

OS:
macOS
Host:
MacBook Pro (M1 Pro)
Editor:
Zed · Dracula
Terminal:
Ghostty
Agents:
pi → Cindelo
Gateway:
LiteLLM @ homelab
Edge:
Cloudflare R2 · MCP

joao@porto ~ %

01DESK

Where the work happens.

  • U1

    MacBook Pro

    M1 Pro. I like MacBooks.

  • U2

    Zed

    My editor, in Dracula.

  • U3

    Ghostty

    My terminal.

  • U4

    pi

    The coding agent in my terminal, until Cindelo takes over.

  • U5

    Cindelo

    My own app: the agentic development environment I work in.

02HOMELAB

A home server on Docker Compose, deployed over SSH. The bench, still open.

  • U6

    LiteLLM

    The gateway: every model I follow behind one endpoint, MCP servers included.

  • U7

    Docker

    One compose file per service.

  • U8

    Pi-hole

    DNS and ad blocking for the house.

  • U9

    Nginx

    The reverse proxy in front.

  • U10

    Homarr

    The dashboard.

  • U11

    Tailscale

    How I reach it from anywhere.

  • U12

    Cloudflare

    R2 for storage, and its MCP server behind the gateway.

03OFF THE CLOCK

Still competitive. Mostly for fun.

  • U13

    Switch & PS5

    Nintendo Switch and PS5.

World