Skip to content

Instantly share code, notes, and snippets.

View 0xthierry's full-sized avatar
🤖
Working 🚀

Thierry Santos 0xthierry

🤖
Working 🚀
View GitHub Profile
@0xthierry
0xthierry / codex-computer-use-on-e2b.md
Created September 9, 2026 23:35
How I got Computer Use and Browser Use running with Codex in E2B

How I got Computer Use and Browser Use running with Codex in E2B

I wanted my background coding agent to use the app it was building. Open Chromium, inspect the page, click through a flow, and see whether it actually works.

I got it running with codex app-server, OpenAI’s first-party computer/browser runtimes, and a Linux desktop inside E2B.

Here’s how I put it together, including the auth issues that took me a while to figure out.

🖥️ Give Codex a desktop

@0xthierry
0xthierry / building-sync-systems.md
Created April 30, 2025 23:13 — forked from pesterhazy/building-sync-systems.md
Building an offline realtime sync engine

So you want to write a sync system for a web app with offline and realtime support? Good luck. You might find the following resources useful.

Overview articles

@0xthierry
0xthierry / bun.flake.nix
Created November 8, 2024 13:09
Bun Nix Flake
{
description = "A Nix flake to install Bun 1.1.34 on x86_64, aarch64 Linux and Darwin";
inputs = {
nixpkgs.url = "github:NixOS/nixpkgs";
};
outputs = { self, nixpkgs }: let
systems = [ "x86_64-linux" "aarch64-linux" "x86_64-darwin" "aarch64-darwin"];
bunVersion = "1.1.34";
@0xthierry
0xthierry / typebox-convert-schema-to-snake-case.ts
Created October 9, 2024 13:23
Automatically convert typebox schemas to snake case
import type { TSchema } from '@sinclair/typebox'
import { Type, TypeGuard } from '@sinclair/typebox'
function toSnakeCase(str: string): string {
return str.replace(/[A-Z]/g, letter => `_${letter.toLowerCase()}`).replace(/^_/, '')
}
function deepSnakeCaseTransformer(schema: TSchema): TSchema {
if (TypeGuard.TObject(schema)) {
const newProperties: Record<string, TSchema> = {}
@0xthierry
0xthierry / google-auth.ts
Last active June 25, 2024 17:07
Get JWT Token for Google APIs in Cloudflare Workers -- no libraries
// inspired by: https://gist.github.com/KeKs0r/92be7af08d1d10eae8d1328c78de5f07
// https://hookdeck.com/blog/how-to-call-google-cloud-apis-from-cloudflare-workers
type ServiceAccount = {
private_key_id: string
private_key: string
client_email: string
}
type Scope = 'https://documentai.googleapis.com/'
@0xthierry
0xthierry / clean-cf-kv.ts
Created June 5, 2024 21:50
Clean all keys from a CF KV
import * as fs from 'node:fs/promises'
const ACCOUNT_ID = process.env.ACCOUNT_ID
const NAMESPACE_ID = process.env.NAMESPACE_ID
const API_TOKEN = process.env.API_TOKEN
const X_AUTH_EMAIL = process.env.X_AUTH_EMAIL
const DEFAULT_HEADERS = {
'X-Auth-Key': API_TOKEN,
'X-Auth-Email': X_AUTH_EMAIL,
@0xthierry
0xthierry / decision-matrix.md
Created September 25, 2023 14:58 — forked from jgcmarins/decision-matrix.md
Looking for a new career opportunity? Use this table to create a ranking of all job offers

Table of concepts and definitions

Concept Definition
Autonomy How well will this company give me autonomy to do my job?
Freedom How much freedom will I have to balance work and personal life?
Responsibilities What level of responsibilities will I have, and how extensive will they be?
Culture How well does this company's culture align with my values, and how open is the company to allowing me to contribute to the culture I believe in?
Tech Stack How closely does the tech stack used by this company align with my preferences, and to what extent is the company willing to allow me to use the stack I prefer?
Personal Growth How big is the potential of this company to help me keep growing?
@0xthierry
0xthierry / main.ts
Created August 9, 2023 16:58
Resend stripe failed webhook events
import { Stripe } from 'stripe'
import { exec } from 'node:child_process'
const API_KEY = 'sk_123445'
const WEBHOOK_ID = 'we_da2321'
const stripe = new Stripe(API_KEY, {
apiVersion: '2022-11-15',
})
const START_TIME = 1691499907
@0xthierry
0xthierry / data-products.md
Last active April 29, 2022 16:07
Data Products
  • airbyte
  • dbt
  • airflow
  • snowflake
  • dagster
  • spark
  • bigtable
  • bigquery
  • spanner
@0xthierry
0xthierry / settings.json
Last active October 3, 2022 22:52
Settings VSCode
{
"workbench.iconTheme": "material-icon-theme",
"workbench.colorTheme": "Dracula",
"terminal.integrated.fontSize": 14,
"workbench.startupEditor": "newUntitledFile",
"editor.tabSize": 2,
"editor.fontSize": 16,
"editor.lineHeight": 26,