Consulting lives on the white pages. This is the rest: a CRM you can own,
skills an agent can run, notes we would have wanted on day one.
Click a clone to copy. Open one in Cursor, Claude Code, or ChatGPT.
Attio is still the default we recommend. Twenty is what we run when the client
needs to own the code, cap the bill, or keep data on their own box.
Open source, self-hostable, app SDK. We have it on a Hetzner box and have shipped
real apps against it.
Productized jobs from real engagements. Drop them in
.claude/skills/,
invoke with a slash, or run the Python. Read-only unless you pass a write flag.
Expand a repo for the catalog. Cursor, Claude Code, and ChatGPT each get a working prompt.
attio-toolkit6 skills 1 star · MIT · 22 days ago
Audit a workspace 0-100. Backup, schema diagram, stale records, cost explorer. Read-only by default.
queuednotionWhen the operating system is a wikiqueued
queuedskillsHow we turn a client job into a public skillqueued
Next on the log: a Notion operating-system note, and a Twenty vs Attio piece
written for the buyer who is allergic to seat-price surprises. Not a replacement
pitch. A decision tree.
copied
Lab command palette
enter run · esc close · / or ⌘K
[{"id":"jump-twenty","group":"Jump","label":"Twenty","href":"/lab/#twenty"},{"id":"jump-skills","group":"Jump","label":"Skills","href":"/lab/#skills"},{"id":"jump-demo","group":"Jump","label":"CSV matcher","href":"/lab/#demo"},{"id":"jump-proof","group":"Jump","label":"Audit proof","href":"/lab/#proof"},{"id":"jump-notes","group":"Jump","label":"Notes log","href":"/lab/#notes"},{"id":"open-note","group":"Jump","label":"Open Twenty field note","href":"/lab/twenty/"},{"id":"copy-env","group":"Twenty","label":"Copy Twenty .env","copy":"LOGIC_FUNCTION_TYPE=LOCAL\nTWENTY_API_URL=https://your-host.example\nTWENTY_API_KEY=\nMESSAGING_PROVIDER_GMAIL_ENABLED=true\nCALENDAR_PROVIDER_GOOGLE_ENABLED=true"},{"id":"copy-compose","group":"Twenty","label":"Copy docker compose up","copy":"docker compose up -d"},{"id":"copy-audit","group":"Proof","label":"Copy attio-audit command","copy":"ATTIO_API_KEY= python skills/attio-audit/audit.py"},{"id":"copy-attio-toolkit","group":"attio-toolkit","label":"Copy install · attio-toolkit","hint":"git clone https://github.com/NachoLafuente/attio-toolkit.git","copy":"git clone https://github.com/NachoLafuente/attio-toolkit.git"},{"id":"gh-attio-toolkit","group":"attio-toolkit","label":"GitHub · attio-toolkit","href":"https://github.com/NachoLafuente/attio-toolkit"},{"id":"cursor-attio-toolkit","group":"attio-toolkit","label":"Open in Cursor · attio-toolkit","href":"cursor://anysphere.cursor-deeplink/prompt?text=Clone%20https%3A%2F%2Fgithub.com%2FNachoLafuente%2Fattio-toolkit.git%20and%20load%20the%20skills.%0AStart%20with%20%2Fattio-audit.%20Read-only%20unless%20I%20pass%20a%20write%20flag.","copy":"git clone https://github.com/NachoLafuente/attio-toolkit.git"},{"id":"claude-attio-toolkit","group":"attio-toolkit","label":"Open in Claude Code · attio-toolkit","href":"https://claude.ai/code?prompt=Clone+https%3A%2F%2Fgithub.com%2FNachoLafuente%2Fattio-toolkit.git+and+load+the+skills.%0AStart+with+%2Fattio-audit.+Read-only+unless+I+pass+a+write+flag.&repositories=NachoLafuente%2Fattio-toolkit","copy":"git clone https://github.com/NachoLafuente/attio-toolkit.git"},{"id":"gpt-attio-toolkit","group":"attio-toolkit","label":"Open in ChatGPT · attio-toolkit","href":"https://chatgpt.com/?q=Clone%20https%3A%2F%2Fgithub.com%2FNachoLafuente%2Fattio-toolkit.git%20and%20load%20the%20skills.%0AStart%20with%20%2Fattio-audit.%20Read-only%20unless%20I%20pass%20a%20write%20flag.","copy":"git clone https://github.com/NachoLafuente/attio-toolkit.git"},{"id":"skill-attio-audit","group":"attio-toolkit","label":"/attio-audit","hint":"Score an Attio workspace 0-100. Read-only, ~10 API calls.","copy":"/attio-audit"},{"id":"skill-attio-backup","group":"attio-toolkit","label":"/attio-backup","hint":"Snapshot the workspace to JSON + CSV, then diff two runs.","copy":"/attio-backup"},{"id":"skill-attio-schema","group":"attio-toolkit","label":"/attio-schema","hint":"ER diagram of the data model. Schema only, never records.","copy":"/attio-schema"},{"id":"skill-attio-attribute-coverage","group":"attio-toolkit","label":"/attio-attribute-coverage","hint":"Which fields are filled vs dead. Flags bloat under 10%.","copy":"/attio-attribute-coverage"},{"id":"skill-attio-stale-records","group":"attio-toolkit","label":"/attio-stale-records","hint":"Untouched records and obvious archive candidates.","copy":"/attio-stale-records"},{"id":"skill-attio-cost-explorer","group":"attio-toolkit","label":"/attio-cost-explorer","hint":"Estimate the Attio bill across plan tiers.","copy":"/attio-cost-explorer"},{"id":"copy-5050-gtm","group":"5050-gtm","label":"Copy install · 5050-gtm","hint":"git clone https://github.com/NachoLafuente/5050-gtm.git","copy":"git clone https://github.com/NachoLafuente/5050-gtm.git"},{"id":"gh-5050-gtm","group":"5050-gtm","label":"GitHub · 5050-gtm","href":"https://github.com/NachoLafuente/5050-gtm"},{"id":"cursor-5050-gtm","group":"5050-gtm","label":"Open in Cursor · 5050-gtm","href":"cursor://anysphere.cursor-deeplink/prompt?text=Clone%20https%3A%2F%2Fgithub.com%2FNachoLafuente%2F5050-gtm.git%20and%20load%20the%20skills.%0AStart%20with%20%2Fcohort-analysis.%20Read-only%20unless%20I%20pass%20a%20write%20flag.","copy":"git clone https://github.com/NachoLafuente/5050-gtm.git"},{"id":"claude-5050-gtm","group":"5050-gtm","label":"Open in Claude Code · 5050-gtm","href":"https://claude.ai/code?prompt=Clone+https%3A%2F%2Fgithub.com%2FNachoLafuente%2F5050-gtm.git+and+load+the+skills.%0AStart+with+%2Fcohort-analysis.+Read-only+unless+I+pass+a+write+flag.&repositories=NachoLafuente%2F5050-gtm","copy":"git clone https://github.com/NachoLafuente/5050-gtm.git"},{"id":"gpt-5050-gtm","group":"5050-gtm","label":"Open in ChatGPT · 5050-gtm","href":"https://chatgpt.com/?q=Clone%20https%3A%2F%2Fgithub.com%2FNachoLafuente%2F5050-gtm.git%20and%20load%20the%20skills.%0AStart%20with%20%2Fcohort-analysis.%20Read-only%20unless%20I%20pass%20a%20write%20flag.","copy":"git clone https://github.com/NachoLafuente/5050-gtm.git"},{"id":"skill-cohort-analysis","group":"5050-gtm","label":"/cohort-analysis","hint":"Cohort table from CRM + revenue. Excel plus per-section CSVs.","copy":"/cohort-analysis"},{"id":"skill-ltv-cac","group":"5050-gtm","label":"/ltv-cac","hint":"LTV, CAC payback, LTV/CAC with four frameworks side by side.","copy":"/ltv-cac"},{"id":"skill-cfo-skill","group":"5050-gtm","label":"/cfo-skill","hint":"Runway, burn, MRR from CSVs or live Attio/Qonto/Stripe.","copy":"/cfo-skill"},{"id":"skill-call-coach","group":"5050-gtm","label":"/call-coach","hint":"Discovery-call coaching from a Granola, Fireflies, or plain transcript.","copy":"/call-coach"},{"id":"skill-disco-prep","group":"5050-gtm","label":"/disco-prep","hint":"Two-minute brief before a disco call: who they are, what to ask.","copy":"/disco-prep"},{"id":"skill-gsc-lighthouse","group":"5050-gtm","label":"/gsc-lighthouse","hint":"Search Console health plus Lighthouse on the top pages by clicks.","copy":"/gsc-lighthouse"},{"id":"skill-linkedin-self-improvement-loop","group":"5050-gtm","label":"/linkedin-self-improvement-loop","hint":"One LinkedIn experiment per cycle. A human always posts.","copy":"/linkedin-self-improvement-loop"},{"id":"skill-attio-deepline-enrich","group":"5050-gtm","label":"/attio-deepline-enrich","hint":"Enrich Attio records with a cost gate before any credit is spent.","copy":"/attio-deepline-enrich"},{"id":"copy-5050-vc-skills","group":"5050-vc-skills","label":"Copy install · 5050-vc-skills","hint":"/plugin marketplace add NachoLafuente/5050-vc-skills","copy":"/plugin marketplace add NachoLafuente/5050-vc-skills"},{"id":"gh-5050-vc-skills","group":"5050-vc-skills","label":"GitHub · 5050-vc-skills","href":"https://github.com/NachoLafuente/5050-vc-skills"},{"id":"cursor-5050-vc-skills","group":"5050-vc-skills","label":"Open in Cursor · 5050-vc-skills","href":"cursor://anysphere.cursor-deeplink/prompt?text=%2Fplugin%20marketplace%20add%20NachoLafuente%2F5050-vc-skills%0A%2Fplugin%20install%205050-vc-skills%0A%0AThen%20run%20%2Fattio-vc-ic-pipeline-prep.%20Read-only.%20Invent%20nothing.","copy":"/plugin marketplace add NachoLafuente/5050-vc-skills"},{"id":"claude-5050-vc-skills","group":"5050-vc-skills","label":"Open in Claude Code · 5050-vc-skills","href":"https://claude.ai/code?prompt=%2Fplugin+marketplace+add+NachoLafuente%2F5050-vc-skills%0A%2Fplugin+install+5050-vc-skills%0A%0AThen+run+%2Fattio-vc-ic-pipeline-prep.+Read-only.+Invent+nothing.&repositories=NachoLafuente%2F5050-vc-skills","copy":"/plugin marketplace add NachoLafuente/5050-vc-skills"},{"id":"gpt-5050-vc-skills","group":"5050-vc-skills","label":"Open in ChatGPT · 5050-vc-skills","href":"https://chatgpt.com/?q=%2Fplugin%20marketplace%20add%20NachoLafuente%2F5050-vc-skills%0A%2Fplugin%20install%205050-vc-skills%0A%0AThen%20run%20%2Fattio-vc-ic-pipeline-prep.%20Read-only.%20Invent%20nothing.","copy":"/plugin marketplace add NachoLafuente/5050-vc-skills"},{"id":"skill-attio-vc-ic-pipeline-prep","group":"5050-vc-skills","label":"/attio-vc-ic-pipeline-prep","hint":"Dealflow hygiene grade plus what moved since the last IC.","copy":"/attio-vc-ic-pipeline-prep"},{"id":"skill-attio-vc-ic-memo-prep","group":"5050-vc-skills","label":"/attio-vc-ic-memo-prep","hint":"Per-deal IC memo skeleton from fields and notes on file.","copy":"/attio-vc-ic-memo-prep"},{"id":"skill-attio-vc-portfolio-health","group":"5050-vc-skills","label":"/attio-vc-portfolio-health","hint":"Board and KPI cadence on companies already in the book.","copy":"/attio-vc-portfolio-health"},{"id":"skill-attio-vc-coinvestor-map","group":"5050-vc-skills","label":"/attio-vc-coinvestor-map","hint":"Syndicate coverage percent and a ranked co-investor table.","copy":"/attio-vc-coinvestor-map"}]