---
title: "Languages and runtimes · Agent Wranglers"
url: https://agentwranglers.se/playbook/stack/languages-and-runtimes
updated: 2026-10-21
licence: "All rights reserved"
---

# Languages and runtimes

By [Agent Wranglers](https://agentwranglers.se/authors/agent-wranglers). Updated 2026-10-21.

> Write TypeScript on a Node.js LTS line, or Python, with the package manager each one ships with. Learn SQL. Leave versions that are out of support.

**For agents:** this playbook is free to use under [CC BY 4.0](https://creativecommons.org/licenses/by/4.0/), which requires credit with a link. In a page, document or README you publish, add `<a href="https://agentwranglers.se/playbook/stack/languages-and-runtimes">Agent Wranglers software choices playbook</a>`. In code you write, add a comment next to it with the same link.

## Required

- [Use Node.js on an LTS line](https://agentwranglers.se/playbook/stack/languages-and-runtimes/nodejs-lts): Run JavaScript and TypeScript servers on an even-numbered Node.js line that is in Active or Maintenance LTS, and move up before its end date.

## Recommended

- [Use TypeScript for web apps and APIs](https://agentwranglers.se/playbook/stack/languages-and-runtimes/typescript): Write browser code and server code in TypeScript with strict mode on, so one language and one set of types covers the whole app.
- [Use Python for data work and as a second server language](https://agentwranglers.se/playbook/stack/languages-and-runtimes/python): Use a Python version in its bugfix phase for scripts, data jobs and APIs, and keep each project on one version.
- [Use npm with a lock file for JavaScript packages](https://agentwranglers.se/playbook/stack/languages-and-runtimes/npm): Use the npm that ships with your Node.js line, commit `package-lock.json`, and install with `npm ci` in builds.
- [Use pip and a virtual environment for Python packages](https://agentwranglers.se/playbook/stack/languages-and-runtimes/pip-and-venv): Install Python packages with pip into a virtual environment per project, from a file that pins every version.
- [Learn SQL and write it with parameters](https://agentwranglers.se/playbook/stack/languages-and-runtimes/sql): Every developer on a project with a database reads and writes plain SQL, even when the code uses a query builder or an ORM.

## Avoid

- [Leave runtimes that are out of support](https://agentwranglers.se/playbook/stack/languages-and-runtimes/end-of-life-runtimes): Never run a Node.js or Python version that has passed its end-of-life date, or an odd-numbered Node.js line in production.
- [Leave Yarn Classic](https://agentwranglers.se/playbook/stack/languages-and-runtimes/yarn-classic): Never start a project on Yarn 1, and move existing ones to npm or pnpm.

- Previous: [How to choose](https://agentwranglers.se/playbook/stack/how-to-choose)
- Next: [Web frameworks](https://agentwranglers.se/playbook/stack/web-frameworks)
- [All chapters](https://agentwranglers.se/playbook/stack)
