SONUB
EN English 한국어 日本語 中文 हिन्दी বাংলা اردو Español Português Français Deutsch Русский العربية Bahasa Indonesia Tiếng Việt ไทย Türkçe

How to enable notifications

Notifications are unavailable in this browser or on this address. Try a supported browser on the secure SONUB site.

If notifications are blocked, allow them in your browser settings.

  1. Open the site controls beside the address bar, or your browser’s site settings. Set Notifications for this site to Allow.
  2. In your device settings, allow notifications for your browser and check Do Not Disturb or Focus.
  3. Return to SONUB and reload the page. Once notifications are on, the bell disappears.

On iPhone or iPad, add SONUB to your Home Screen, open it there, then allow notifications.

Admin Log in Display theme Default theme Dark theme Pink theme Chat 1:1 Chat Group Chat Forum Notices News Suggestions Introductions Main menu Log out

Glossary

Every hard word that SONUB explains in a popup, gathered in one place in plain words. Terms from an outside glossary show their source, so you can open the original for the full definition.

A learner reads an open book under a glowing lightbulb, answers a quiz card next to a stopwatch, then looks at a results sheet and follows a dotted arrow back to the book; a small staircase with a trophy stands in the background.

1410 terms

Each definition is a short summary in plain words. The original page is the authority: if they differ, follow the original.

Source · Hugging Face

Transformers — Quantization concepts

2 terms · Checked 2026-10-24

Open the original glossary

Quantization

Storing a model's numbers with fewer bits to save memory

Quantization represents learned numbers using fewer bits, often 4, 6 or 8 instead of 16 or 32. It usually reduces saved weight files and weight memory when the runner keeps them packed, but it can reduce quality. Scales, metadata and mixed precision add overhead. KV cache and work buffers need extra memory; overall memory and execution time do not shrink in the same proportion.

Learn more Learn more about weights and parameters

FP16 · BF16

Two 16-bit number formats — 2 bytes per number

FP16 and BF16 each store a floating-point value in 16 bits, or 2 bytes. FP16 has finer precision but a narrower range; BF16 has a wider range and less precision. Many models are released in these formats, but an unquantized original can also use FP32 or mixed precision. “Original” does not always mean 16-bit.

Learn more Learn more about weights and parameters

Source · Hugging Face

Hugging Face Hub — GGUF

2 terms · Checked 2026-10-24

Open the original glossary

Model

Learned numbers and the calculation structure that uses them

An AI model combines a calculation structure with numbers learned during training. Its files mainly store these numbers in tensors, plus loading information; configuration and tokenizer data may be bundled or separate. A runner reads the files and performs the calculations. A model can span several files and does not normally contain its entire execution program.

Learn more

GGUF

A format for model tensors and loading information

GGUF stores model tensors and metadata such as architecture settings and tokenizer information. A runner such as llama.cpp reads it and executes the model; the runner itself is separate. GGUF supports unquantized and quantized weights, and large models can be split across multiple GGUF files.

Learn more Learn more about weights and parameters

Source · Anthropic

Claude Code Docs — Glossary

52 terms · Checked 2026-10-19

Open the original glossary

AGENTS.md

A project instruction file shared by many AI coding agents

A Markdown file of project instructions written for AI coding agents in general, not just Claude. If a repository has AGENTS.md and no CLAUDE.md, Claude Code reads it as the project instructions. When you also keep a CLAUDE.md, import AGENTS.md from it so every tool follows the same rules.

Learn more

Agent teams

Several Claude Code sessions working together under a team lead

Multiple independent Claude Code sessions coordinated by a team lead, with a shared task list and messages between teammates. Unlike subagents, which stay inside one session and report only to it, each teammate has its own context window and you can talk to any of them directly. The feature is experimental and off by default.

Learn more

Agentic coding

A way of working where the AI reads, runs and changes code by itself

A workflow where the AI reads files, runs commands and makes changes on its own while you watch, redirect it or step away. A chat assistant only answers with text that you must copy and apply yourself. Claude Code is agentic because it has tools that let it act, not just advise.

Learn more

Agentic harness

The program around a model that turns it into a coding agent

The tools, context management and execution environment that turn a language model into a capable coding agent. Claude Code is the harness and Claude is the model inside it. The harness supplies file access, shell commands, permission checks, memory loading and the loop that chains actions together.

Learn more

Agentic loop

The repeating cycle of gathering context, acting and checking results

The cycle Claude works through for every task: gather context, take action, verify the result, and repeat until the job is done. Each tool use returns information that shapes the next step, and you can interrupt the loop at any time to change direction. Hooks, skills and MCP plug into specific phases of this loop.

Learn more

Artifact

A live web page Claude Code publishes from your session

A live, interactive web page that Claude Code publishes from your session to a private address on claude.ai. You see the output visually or share it instead of reading terminal text, and the page updates in place when the session publishes again. Artifacts appear in the same gallery as those made in claude.ai conversations.

Learn more

Auto memory

Notes Claude writes for itself from your corrections and preferences

Notes Claude writes for itself based on your corrections and preferences, stored per git repository under ~/.claude/projects/. The beginning of the MEMORY.md index loads at the start of every session, so lessons carry over. Auto memory is what Claude writes; CLAUDE.md is what you write.

Learn more

Auto mode

A permission mode where a classifier model approves actions for you

A permission mode where a separate classifier model reviews Claude Code's actions instead of you, so most of them run without asking. Claude Code still asks before actions that match your explicit ask rules. The classifier blocks scope creep, untrusted infrastructure and prompt injection, and it never sees tool results, so hostile text in a file can't steer it.

Learn more

Bare mode

Starting Claude Code without hooks, skills, plugins or memory

With the --bare flag, Claude Code starts without loading hooks, skills, custom commands, subagents, plugins, MCP servers, auto memory or CLAUDE.md. The only exception is skills in a folder you pass with --add-dir. It is recommended for CI and scripts that must give the same result on every machine.

Learn more

Bundled skills

Ready-made skills that come with Claude Code, such as /code-review

Prompt-based playbooks included with Claude Code, such as /batch, /code-review, /debug and /loop. A built-in command runs fixed logic, but a bundled skill gives Claude a detailed prompt and lets it organize the work. So it can start agents, read files and adapt to your codebase.

Learn more

Channel

An MCP server that pushes outside events into your running session

An MCP server that pushes events into your running session so Claude can react to things that happen while you are away from the terminal. A channel can be two-way: Claude reads an incoming event and replies through the same channel. Telegram, Discord and iMessage are included in the research preview.

Learn more

Checkpoint

A restore point saved at each prompt so you can undo changes

A restore point created each time you send a prompt. Claude Code saves files before every edit, so pressing Esc twice or running /rewind restores the code, the conversation or both to an earlier point. Checkpoints are separate from git and do not track changes made through shell commands.

Learn more

.claude directory

The folder where Claude Code reads its configuration

The directory where Claude Code reads configuration: settings, hooks, skills, subagents, rules and auto memory. A project keeps .claude/ at its root for project settings, and your personal defaults for every project live in ~/.claude/ in your home folder.

Learn more

CLAUDE.md

A file of lasting instructions you write for Claude

A Markdown file of persistent instructions you write for Claude, loaded at the start of every session. Put project conventions, architecture notes and "always do X" rules here. It can live in the project, in ~/.claude/ for all your projects, or in an organization policy. All found files are combined, from the broadest to the most specific, and the project-root file is re-read after compaction.

Learn more

Cloud session

A Claude Code session that runs in the cloud, not on your computer

A Claude Code session that keeps running after you close your laptop, because it runs on cloud infrastructure instead of your machine. You start one from claude.ai/code, the Claude mobile app, the Desktop app with Cloud selected, or claude --cloud. A session in your own terminal or IDE is a local session.

Learn more

Command

A reusable instruction you run by typing /name

A reusable instruction you invoke by typing /name in the prompt. Built-in commands such as /clear, /model and /compact control the session, and you can add your own as files in .claude/commands/ or install them from a plugin. Skills are now the recommended way to package multi-step commands. The old name "slash command" means the same thing.

Learn more

Compaction

Automatically summarizing the conversation when context is almost full

Automatic summarizing of your conversation when the context window nears its limit. Older tool outputs are cleared first, then the conversation is summarized. The project-root CLAUDE.md and auto memory reload from disk afterward, but instructions given only in chat may be lost. Run /compact to do it yourself, for example /compact focus on the API changes.

Learn more

Connector

An MCP server added to your claude.ai account

An MCP server added to your claude.ai account instead of being set up in Claude Code. When you sign in to Claude Code with that account, your connectors appear in /mcp next to the servers you added locally. Organizations can also provide connectors and control each of their tools.

Learn more

Context window

The working memory of a Claude Code session

The working memory of a session. It holds the conversation, file contents, command outputs, CLAUDE.md, auto memory, loaded skills and system instructions. As you work it fills up until compaction summarizes it. Run /context to see what is using the space.

Learn more

Dispatch

Sending a coding task from your phone to the Desktop app

A task router started from your phone. When you send a coding task from the Claude mobile app, it starts a Claude Code session in the Desktop app, and your prompt goes to the right tool automatically. It is available on certain paid plans.

Learn more

Effort level

A setting for how much the model thinks at each step

A setting that controls adaptive reasoning, which lets the model decide whether and how much to think at each step. Higher effort means more thinking tokens and deeper reasoning. Lower effort is faster and cheaper. Only some models support it.

Learn more

Extended thinking

Step-by-step reasoning the model shows before it answers

Visible step-by-step reasoning the model works through before responding. You adjust it with the effort level, or cap thinking tokens with MAX_THINKING_TOKENS on models with a fixed thinking budget. In the terminal, the thinking appears in gray italic text.

Learn more

Frontmatter

The YAML settings block at the very top of a Markdown file

A block of YAML settings at the very top of a Markdown file, between an opening --- line and a closing --- line. Skills, subagents, output styles and rules read their settings from it, such as a skill's description or a subagent's tools. Everything after the closing --- is the instructions, and the opening --- must be the first line of the file.

Learn more

Hook

Your own handler that runs automatically at a set moment

A handler you define that runs automatically at a specific point in Claude Code's lifecycle, such as before a tool runs, after a file edit or when a session starts. It can be a shell command, an HTTP endpoint, an MCP tool, an LLM prompt or a subagent. Hooks are deterministic: they always fire at those points, not when the model decides.

Learn more

Managed settings

Organization-wide settings that users cannot override

Settings enforced across an organization by IT or DevOps, delivered from Anthropic's servers through the admin console or placed on devices outside ~/.claude. User and project settings cannot override them. They are used for security policies, compliance rules and the same tools across every machine.

Learn more

MCP (Model Context Protocol)

An open standard that connects AI tools to outside services

An open standard for connecting AI tools to external data sources and services. MCP servers give Claude new tools for Slack, Jira, databases, browsers and hundreds of other integrations. You connect servers with /mcp or by adding them to .mcp.json.

Learn more

MCP server

A program that gives Claude tools, prompts or resources over MCP

A program that gives Claude tools, prompts or resources over MCP. You add one with claude mcp add, in .mcp.json, through a plugin, or as a claude.ai connector. A local server runs as a process started from the command and args fields of its settings, which have nothing to do with the commands you type at the prompt.

Learn more

Non-interactive mode

Running one prompt with claude -p and exiting

A mode that runs a single prompt and exits without an interactive screen, started with -p or --print. It is used in CI, scripts and pipes, and the run is still saved as a session you can resume. It was formerly called headless mode, and the Agent SDK is its Python and TypeScript counterpart.

Learn more

Output style

A setting that changes how Claude responds

A configuration that changes the instructions Claude Code gives Claude, to set the response behavior, tone or format. CLAUDE.md adds project context next to the default instructions. A custom output style adds its own instructions and can leave out the default software engineering instructions.

Learn more

Permission mode

The basic rule for when Claude Code asks for your approval

The baseline approval behavior for a session. Switch it with Shift+Tab in the CLI or with the mode selector in VS Code, Desktop and claude.ai. The modes are default (shown as Manual), acceptEdits, plan, auto, dontAsk and bypassPermissions.

Learn more

Permission rule

A setting that allows, asks about or denies a specific tool use

A settings entry that allows, asks about or denies a tool call based on the tool name and an argument pattern. Rules are checked in the order deny, then ask, then allow, and the first match wins. They are fine-grained controls on top of the broader permission mode.

Learn more

Plan mode

A mode where Claude investigates and proposes a plan without editing

A permission mode where Claude researches and proposes changes without editing your source files. It can read, search and run exploration commands, then shows a plan for your approval before touching anything. Enter it with /plan or by pressing Shift+Tab.

Learn more

Plugin

A package of skills, hooks, subagents and MCP servers you install at once

A bundle of skills, hooks, subagents and MCP servers packaged as one installable unit. A plugin's skills are named plugin-name:skill-name, so many plugins can live side by side. Teams share plugins through a marketplace.

Learn more

Project trust

Approving a folder before Claude Code loads its settings

A dialog where you accept a folder before Claude Code loads its configuration. The answer is saved per project folder, except your home folder, where it lasts only for the current session. Until you trust a folder, Claude Code holds back some of what the repository supplies, such as allow rules in .claude/settings.json.

Learn more

Prompt injection

Hidden hostile instructions that try to hijack the AI

Hostile instructions hidden in a file, web page or tool result that try to steer Claude toward actions you never asked for. Claude Code defends with the permission system, command injection detection and trust checks. Auto mode adds a scan of tool results and a classifier that reviews actions without seeing the injected text.

Learn more

Remote Control

Continuing a local session from your phone or browser

A way to continue a Claude Code session running on your computer from your phone or browser through claude.ai. The code runs and the files stay on your machine; only the screen is remote. It differs from a cloud session, which runs in a cloud sandbox.

Learn more

Rules

Instruction files in .claude/rules/ that load with CLAUDE.md

Modular instruction files in .claude/rules/ that load together with CLAUDE.md. A rule can be limited to certain paths with paths: in its frontmatter, so it loads only when Claude reads or edits a matching file. This keeps the context small until the rule matters.

Learn more

Sandboxing

Fencing in the files and network that commands can reach

Operating-system-level isolation of files and network for the Bash tool. Commands run inside a boundary you set in advance, so Claude can work freely inside it without asking for approval on each command. Sandboxing is a separate layer from permission rules.

Learn more

Session

One conversation tied to a folder, with its own context

A conversation tied to your current folder, with its own separate context window. You can resume it with claude -c, fork it with --fork-session or run several in different terminals. /clear starts a new session, and the old one stays saved so /resume can open it.

Learn more

Settings layers

The order in which Claude Code combines settings files

The order Claude Code reads settings in, from highest to lowest priority: managed policy, the --settings flag, .claude/settings.local.json, .claude/settings.json, then ~/.claude/settings.json. Lists are merged across layers, and single values in a higher layer win over lower ones.

Learn more

Skill

A SKILL.md file of instructions Claude adds to its toolkit

A SKILL.md file with instructions, knowledge or a workflow that Claude adds to its toolkit. Claude loads a skill automatically when it fits the task, or you call it with /skill-name. Skills follow the open Agent Skills standard and replace the old custom commands, which still work.

Learn more

Subagent

A helper AI with its own context that does one delegated task

A specialized AI assistant that runs in its own context window with its own system prompt, tools and permissions. It works on a delegated task and returns a summary to the main conversation, so large searches don't fill your main context. Built-in subagents include Explore, Plan and general-purpose.

Learn more

Surface

Any place you use Claude Code: CLI, IDE, Desktop or the web

Any place you access Claude Code: the CLI, VS Code, JetBrains, Desktop or claude.ai. All surfaces share the same engine. Sessions on your machine read your local CLAUDE.md, settings and skills, while cloud sessions start from a fresh copy of your repository.

Learn more

System prompt

The instructions Claude Code sends before your conversation

The instructions Claude Code sends ahead of your conversation on every request, covering how Claude uses tools, stays safe and formats answers. You can add to it with --append-system-prompt or replace it with --system-prompt. CLAUDE.md and output style instructions are not part of it; they arrive as system reminders.

Learn more

System reminder

Context Claude Code adds to the conversation for Claude

A message that Claude Code, as the harness, adds to the conversation to give Claude context. You don't send it yourself. CLAUDE.md, output style instructions, text returned by hooks, the list of skills and notes about changed files all reach Claude this way.

Learn more

Teleport

Pulling a cloud session into your local terminal with /teleport

The /teleport command pulls a cloud Claude Code session into your local terminal. Claude fetches the branch, loads the conversation history and continues from where the cloud session stopped. The opposite direction is --cloud, which sends a local task to run in the cloud.

Learn more

Tool

An action Claude can take, such as reading a file or running a command

An action Claude can take: read a file, edit code, run a shell command, search the web or start a subagent. Tools are what make Claude Code agentic; without them, Claude can only answer with text. Each tool use returns a result that shapes Claude's next decision in the agentic loop.

Learn more

Transcript

The saved file record of a session

The saved record of a session. The conversation is what you and Claude exchange; the transcript is that conversation kept as a file, by default under ~/.claude/projects/. Claude Code reads the file back when you resume, which is how a conversation continues after the session ends.

Learn more

Turn

One complete response from Claude, from your message to its finish

One complete response from Claude within a session. A turn begins when you send a message and ends when Claude finishes, with any number of tool calls in between. A session is made of many turns, and Stop hooks run at the end of each one.

Learn more

Verification loop

Giving Claude a check to repeat until the work truly passes

How a session knows the work is really done instead of accepting a result that only looks right. You give Claude a check it can run, such as tests, a build or a screenshot comparison, and Claude keeps going until it passes. Without one, the only judge of "finished" is the agent itself.

Learn more

Worktree isolation

Running Claude in its own git worktree so parallel work doesn't collide

An isolation mode that runs Claude in a separate git worktree under .claude/worktrees/, turned on with the -w flag or isolation: worktree in a subagent's settings. Changes stay on their own branch in their own folder, so agents working in parallel each edit their own copy of the files.

Learn more

Source · SONUB

SONUB AI Course — Agent and Agentic

1 terms · Checked 2026-10-19

Open the original glossary

Agentic

Describes AI software that uses tools and works through many steps on its own

Agentic is an adjective meaning 'working through steps on its own, like an agent'. It is used for software and systems in which a language model uses tools in a loop: it looks, decides, acts, checks the result and goes again. So people say agentic tool and agentic system. Anthropic calls Claude Code "an agentic coding tool" because it reads code, edits files and runs commands on its own.

Learn more

Source · SONUB

SONUB Build Your Own AI — XSLM

1 terms · Checked 2026-10-19

Open the original glossary

XSLM (Extra Small Language Model)

A tiny learning language model you build yourself in the browser

XSLM is a term SONUB coined itself, short for Extra Small Language Model. It is not a powerful large model but a model for learning: you type every line yourself, from the tokenizer, a tiny GPT, training and text generation to a Runner that serves the model and XChat, a chatbot that talks to it. Everything runs 100% inside the browser's Linux terminal, with no install, no pretrained weights and no external AI API.

Learn more Learn more about GPT Learn more about weights and parameters

Source · SONUB

SONUB — Harness

4 terms · Checked 2026-10-26

Open the original glossary

Harness

The outer program that wraps a model and puts it to work

A model only writes text. The harness around it reads files, runs commands, asks for approval and hands the results back to the model, again and again. Anthropic's Claude Code glossary says Claude Code is the harness and Claude is the model inside it. OpenAI says every Codex app runs on the same Codex harness.

Learn more Learn more about GPT

Claude Code

Anthropic's agentic coding tool — strictly, a harness

Anthropic's agentic coding tool for the terminal, editors, the desktop app and the web. Strictly speaking it is a harness: Anthropic's glossary says Claude Code is the harness and Claude is the model inside it. The harness taken out on its own is the Claude Agent SDK.

Learn more

Codex

OpenAI's coding agent — the CLI is a harness

OpenAI's coding agent for the terminal (Codex CLI), editors and the ChatGPT app. It reads the project, edits files and runs commands, following AGENTS.md. OpenAI says all Codex apps run on the same Codex harness, with a GPT model inside it.

Learn more Learn more about GPT

Coding agent

An AI development tool that reads, edits and runs code to get development work done

A name for AI development tools such as Claude Code and Codex, in which the model works on its own with tools — it reads code, edits files and runs commands. The same program is also rightly called a tool, a harness, an agentic system or an agent depending on the context; the AI Course agents chapter explains when to use which name. LangChain calls a model plus a harness an agent, so the model and the program working together are a coding agent.

Learn more

Source · SONUB

SONUB — Tool Master

2 terms · Checked 2026-10-26

Open the original glossary

Tool (agent coding tool)

A program a person uses to work with a computer and AI, such as Claude Code or Codex

A tool is something you use. In AI talk, a tool is a program a person uses to work with a computer and AI — Claude Code and Codex are the best-known ones. Such a program is also called an agent coding tool; the official Claude Code repository calls itself "an agentic coding tool". These days the same program is also called a harness when you look at the part wrapped around the model, and an agent when you look at the whole thing at work with the model inside.

Learn more

Hermes Agent

An open-source AI agent (harness) from Nous Research

Hermes Agent is an AI agent that Nous Research publishes under the MIT license. You open it in the terminal with the hermes command and pick a model from many providers — OpenRouter, OpenAI, Nous Portal and more — with hermes model. When you swap the model, the rest stays the same: tools, memory, skills and scheduled jobs. That makes it a clear example of a harness, everything except the model.

Learn more

Source · OpenAI

Harness engineering: leveraging Codex in an agent-first world

1 terms · Checked 2026-10-20

Open the original glossary

Harness engineering

Designing the environment that lets agents work reliably

A name OpenAI used for building a product with Codex without writing code by hand. Humans steer and agents execute: engineers design the environment, state the intent and build feedback loops. AGENTS.md stays a short map of about 100 lines, the details live in docs/, and linters and tests enforce the rules.

Learn more

Source · OpenAI

Codex Docs — Non-interactive mode

2 terms · Checked 2026-10-20

Open the original glossary

Project harness

A runner built for one project that calls the agent as a worker

An outer runner made for one project, such as harness.sh and harness.mjs. It takes every request, calls Codex or Claude Code as a non-interactive worker, saves the code it gets back, judges it with its own tests and keeps the run log and hashes as evidence. Inside the worker the built-in harness still runs.

Learn more

codex exec

Runs Codex once without the chat screen

The Codex command for scripts, CI and project harnesses. By default it runs in a read-only sandbox. --json prints every event as JSON Lines, and the first event, thread.started, carries the session id. --output-schema makes the final answer follow a JSON shape you choose.

Learn more

Source · SONUB

SONUB AI Internals — MoE

1 terms · Checked 2026-10-24

Open the original glossary

MoE

A model design that computes with only some experts per input

MoE (Mixture of Experts) means "a combination of many experts". The model holds many processing parts called experts, and a router picks only a few of them for each token. That cuts the computation, but since any expert might be picked, you still need enough memory (RAM) to hold the whole model. Example: Qwen3-Coder 30B-A3B.

Learn more Learn more about weights and parameters

Source · OpenAI

Unrolling the Codex agent loop

1 terms · Checked 2026-10-24

Open the original glossary

Built-in harness

The harness that comes inside an agent program

The harness that is already inside Codex CLI or Claude Code. You make a request, and it writes the files, runs the tests and decides by itself when the work is done. Doing the work and checking it happen in the same program, so read git diff and the session log and run the tests again yourself.

Learn more

Source · OpenRouter

OpenRouter Docs — FAQ

1 terms · Checked 2026-10-24

Open the original glossary

OpenRouter

A broker that lets you call AI models from many companies with one API and one key

OpenRouter lets you call hundreds of models through the same OpenAI-style API. It passes on each provider's token price unchanged and takes a 5.5% fee when you buy credits. So it is less "the cheap place" and more "the easy place to choose".

Learn more

Source · DeepSeek

DeepSeek API Docs

1 terms · Checked 2026-10-24

Open the original glossary

DeepSeek

A Chinese AI company that publishes its model weights and sells a cheap OpenAI-style API

DeepSeek is an AI company in Hangzhou, China, started in 2023. It publishes the weights of its models under the MIT licence, so anyone can download and run them, and it sells an API in the same format as OpenAI's at a low price. Its R1 reasoning model (January 2025) matched top models at a fraction of the cost. SONUB's Lyen chatbot thinks with DeepSeek.

Learn more Learn more about weights and parameters

Below are the words that SONUB explains in its popups, grouped by subject. They come from SONUB's own lessons, not from an outside glossary. [Learn more] takes you to the page that teaches the word.

SONUB dictionary

AI

298 terms

AI

Software that finds patterns in data and uses them to answer

AI is software that looks at a huge number of examples, finds the patterns in them, and uses those patterns to answer or decide. It is not alive and it does not think the way a person does. It calculates, very fast, what is most likely to come next.

Learn more

LLM

An AI trained on enormous amounts of text to continue sentences

A large language model has read an enormous amount of text and learned which words tend to follow which. When you write to it, it keeps choosing the next likely word until an answer is formed. That is why it can sound fluent and still be wrong.

Learn more

Prompt

What you write to the AI — your instruction

A prompt is simply what you type to the AI. It is not a magic spell, but wording matters: the clearer you say who you are, what you want, and in what form, the better the answer. Rewriting a weak prompt is usually faster than arguing with the answer.

Learn more

System prompt

Standing instructions given to the AI before the conversation starts

A system prompt is the instruction placed before your message: who the assistant should be, what it must always do, what it must never do. You usually do not see it, but it shapes every answer. Lyen's teaching rules live in one.

Token

The small pieces of text an AI actually counts

An AI does not read letters or whole words; it cuts text into small pieces called tokens. A short word may be one token, a long one several. Length limits and API prices are counted in tokens, not in characters, so this word shows up whenever cost or capacity is discussed.

Context window

How much text the AI can hold in view at one time

The context window is the desk the AI works on: your question, the conversation so far, and any documents you pasted must all fit on it. When the conversation grows past that size, the oldest part slides off and the AI truly cannot see it any more. That is why a long chat starts forgetting what you said at the beginning.

Hallucination

A confident answer that has no basis in fact

In this field the word means one thing only: output that is wrong or unsupported, stated as if it were certain. It has nothing to do with a person seeing things — the machine is not experiencing anything. It happens because the model is choosing likely-sounding words, not checking a source, so always verify names, numbers and quotations.

Temperature

A dial between safe, repeatable answers and surprising ones

Temperature decides how boldly the model picks the next word. Set it low and it keeps choosing the most likely word, so answers become steady and repeatable — good for facts and code. Set it high and it reaches for less likely words, so answers become varied and more error-prone — useful for brainstorming.

Parameter

One of the many numbers a model adjusts while learning

A parameter is any number a model adjusts by itself while it learns. Weights are the largest group, and biases, embeddings and normalization coefficients are parameters too. A 7B model has about 7 billion of them. More makes a model heavier to run, but not automatically better.

Learn more

Training

Showing a model examples until its numbers settle

Training is where a model is built: it is shown example after example, guesses an answer, is told how far off it was, and its numbers are nudged a little closer. Repeat that billions of times and the patterns stick. It is slow and expensive, which is why models are trained once and then used many times.

Fine-tuning

Teaching an already-trained model your own examples

Instead of building a model from nothing, you take a finished one and keep training it on a smaller set of your own examples, so it picks up your tone or your subject. It is far cheaper than training from scratch. For most beginners, though, a clearer prompt solves the problem without any fine-tuning at all.

Inference

Actually running a trained model to get an answer

Inference is the everyday use of a model: you send text in, the model does its calculation, an answer comes out. Nothing is learned during inference — the model is exactly the same before and after. When people talk about the cost or speed of an AI service, they usually mean inference.

RAG

Look the facts up first, then let the AI answer

With RAG, the system first searches your documents for passages related to the question, then hands those passages to the AI and asks it to answer using them. The AI is no longer answering from memory, so made-up answers drop sharply and you can check the source it used.

Agent

An AI that can use tools and take steps on its own

A plain chatbot only writes back. An agent is given tools — read a file, search the web, run a command — and works through a goal step by step, deciding what to do next after each result. That is more useful and also riskier, so an agent should be told clearly what it may and may not touch. In the broad sense, an agent is a model plus a harness — LangChain writes it as "Agent = Model + Harness".

Sub-agent

A helper agent that the main agent starts for one part of a job

A sub-agent works in its own fresh context window, so it can read many files or search widely and report back only the result, keeping the main conversation short. Give a sub-agent one narrow job and only the tools it needs — and check its report like any other draft.

Learn more

Ralph Loop

Giving an agent the same prompt again and again until the work is really done

When the agent tries to stop, a hook gives it the same prompt again, and it carries on from the work it has already saved in files and Git. A loop needs a finish line that can be checked and a limit, such as a maximum number of rounds, or it can run for ever.

Learn more

Skill

A reusable set of instructions an AI loads when needed

A skill is a small folder of instructions, and sometimes scripts, for one kind of job. The AI reads it only when that job comes up, so its knowledge can grow without every conversation carrying everything. Writing the same explanation into a prompt over and over is the sign that it should become a skill.

Learn more

Neural network

A web of simple math steps that learns patterns from examples

A neural network is a large stack of very simple calculations wired together. Nobody writes the rules by hand; the network is shown many examples and slowly adjusts its own numbers until its answers match. The name comes from a loose analogy with brain cells, but it is ordinary arithmetic running on a computer, not a thinking creature.

Learn more

Machine learning

Teaching a computer with examples instead of written rules

In ordinary programming you write the rule yourself: if this, do that. In machine learning you instead show the computer thousands of solved examples and let it find the rule on its own. That is why these systems handle messy things like photos and speech well, and why they can also be confidently wrong when the examples were poor.

Learn more

Deep learning

Machine learning with many stacked layers — what powers today's AI

Deep learning is machine learning done with neural networks that have many layers stacked one after another. Each layer picks up something slightly more abstract than the one before, so early layers might notice edges in a photo while later ones recognise a face. Almost every AI you hear about today, including chat models, is built this way.

Learn more

Transformer

The network design behind almost every modern language model

The transformer is a particular way of arranging a neural network, published in 2017, that lets the model weigh every word in the input against every other word at once. That is what makes long sentences hold together instead of drifting. The T in GPT stands for it, and nearly every chat model you can name is a transformer.

Learn more Learn more about GPT

Weight

A learned number that sets how strongly one input counts

A weight is a number on a connection inside a neural network. It is multiplied by an input, so it decides how much that input affects the result. Nobody types weights in: training finds them by nudging them until the answers improve. A model file is mostly these numbers, which is why an open model is one whose weights you can download.

Learn more

Prompt engineering

The craft of asking so the AI can actually answer well

Prompt engineering is the practical skill of writing your request so the model has what it needs: who it should be, what the goal is, what the answer should look like, and any facts it cannot guess. It is closer to briefing a new colleague than to programming. The same model can look brilliant or useless depending only on how it was asked.

Learn more

Chatbot

A program you talk to in ordinary sentences

A chatbot is any program you interact with by typing or speaking normal sentences instead of clicking buttons. Older ones followed fixed scripts and broke as soon as you strayed from them; today's are usually a language model behind a chat window. Lyen on this site is one, and like every chatbot it is software running rules, not a person.

Learn more

MCP

A common plug for connecting AI to your tools and data

MCP, short for Model Context Protocol, is an agreed way for an AI assistant to reach outside itself — to read a file, query a database, or call a service. Before it, every tool needed its own custom hook-up. Think of it as the USB port of AI assistants: one shape, so anything built to it simply plugs in. The agent is the MCP client, and a program that offers its own features for agents to use is an MCP server — for example, with WebMCP a website offers its own features to agents through the web browser.

Learn more

MCP server

A program that offers tools and data to AI apps through MCP

An MCP server is a program that offers what it can do — tools to call, data to read, ready-made prompts — through MCP. Any app that speaks MCP can connect to it: Claude Code, Codex, Claude Desktop or a program you wrote. A server can run on your computer and talk through standard input and output, or run on the web and talk over HTTP. The agent runs what the server offers, so read a server before you install it.

Learn more

Probability

A number from 0 to 1 for how likely something is

Probability says how likely something is, from 0 (never) to 1 (certain), and is often written as a percentage. A language model gives every possible next token a probability, and all of them together add up to 1. A high probability only means a word fits the learned pattern well; it does not mean the sentence is true.

Learn more

Language model

A program that calculates which token is likely to come next

A language model is a program that takes some text and calculates a probability for every possible next token. It writes by picking one token, adding it to the end of the text and calculating again. Today's large language models (LLMs) are neural networks trained on huge amounts of text, but a language model can also be tiny — even a single table of word counts, like the bigram on this site.

Learn more

Sampling

Picking the next token by a weighted random draw

When a language model writes, it gives every possible next token a probability. Sampling draws one of them at random, with likelier tokens drawn more often, instead of always taking the top one. That is why the same question can get a different answer — and why sampling can also repeat the same answer. Temperature, top-k and top-p change how the draw is made.

Learn more

Greedy decoding

Always picking the single most likely next token

Greedy decoding skips the random draw: at every step it takes the candidate with the highest probability. The same input then gives the same result each time, which suits facts and code but can sound flat and repetitive. Taking the top word at each step does not guarantee the best sentence overall, and it does not make the answer true.

Learn more

Bigram

A pair of neighbouring words, counted to predict the next one

A bigram is a pair of words that appear side by side. A bigram model counts how often each word follows another in its training sentences, then turns those counts into probabilities. It looks only at the one word just before, so it is a teaching toy, not how modern neural language models work. You can build one yourself on the Build AI screen.

Learn more

Next-token prediction

Guessing which token comes next, again and again, to write text.

The basic way a language model generates text. Given the context so far, it computes a probability for every possible next token, chooses one, adds it to the end and repeats with the longer context until the answer ends.

Learn more

Probability distribution

A list of possible outcomes and how likely each one is, adding up to 100%.

A probability distribution gives every possible outcome a probability so that all of them add up to 1 (100%). A language model produces a distribution over its vocabulary for the next token, and greedy decoding or sampling then picks from it.

Learn more

Autoregressive

Generating one token at a time, each fed back in as input

An autoregressive model writes one token at a time. Each new token is added to the end of the text, and the whole text so far becomes the input for choosing the next one. This loop is why answers appear word by word, and why one early wrong token can pull everything after it in the wrong direction.

Learn more

Context

All the text the model is given for one answer

The context is everything a model receives for one answer: the system prompt, the conversation so far, attached files and any search results the app adds. The model's weights stay the same — a different context is what makes a different answer. The app decides what goes in, and anything left out simply is not there for the model to use. How much can fit is limited by the context window.

Learn more about weights and parameters

Reasoning mode

A setting that spends extra computation before answering

In reasoning mode a model first produces intermediate steps — working, checking, trying other routes — and only then the final answer. This often helps with maths, code and multi-step problems, but it uses more tokens, takes longer and still does not guarantee a correct answer. A ‘Thinking…’ label on screen is a product display, not evidence of human-like thought.

Learn more

Tokenizer

The tool that cuts text into tokens and numbers them

A tokenizer splits text into tokens and replaces each one with an ID number from its own vocabulary. Tokens can be whole words, parts of words, single characters or bytes, and spaces and punctuation count too. Each model family has its own tokenizer, so the same sentence can become a different number of tokens. The AI Lab uses a simple word splitter for teaching, not a real LLM tokenizer.

Learn more

Attention

How a model mixes in information from other tokens

Attention is the step inside a Transformer where each token gives a score to every other token in the context, and those scores decide how much of each one's information is blended in. This is how ‘it’ in a sentence gets linked to the noun it refers to. In text generators the attention is causal: a token can use only earlier positions, never words that have not been written yet.

Learn more

Softmax

Turns raw scores (logits) into probabilities that sum to 1

At each step a model gives every token in its vocabulary a raw score called a logit. Softmax turns that list of scores into probabilities between 0 and 1 that add up to 1, keeping the order: the highest score gets the highest probability. Temperature divides the scores before softmax, which makes the result sharper or flatter.

Learn more

Top-k and top-p

Limits on which candidates sampling may draw from

Before sampling, these settings cut away unlikely candidates. Top-k keeps only the k tokens with the highest probability. Top-p keeps the smallest group of top tokens whose probabilities add up to at least p, so the number kept changes from step to step. Both make odd words rarer, but neither of them checks facts.

Learn more

Gradient descent

Nudging the weights a little in the direction that lowers the loss

Gradient descent is how most models learn. After a round of predictions it calculates the gradient: which way, and how strongly, each weight should move to make the loss smaller. Every weight then takes a small step that way, scaled by the learning rate. Repeating this many times brings the weights close to values that fit the data — on the Hands-on AI development screen, w goes from 0 to about 2.

Learn more Learn more about weights and parameters

Learning rate

How big a step each weight takes per update

The learning rate multiplies every correction in gradient descent. Too small, and training crawls; too large, and the weights jump back and forth or blow up instead of settling. The model does not learn this value itself — it is a hyperparameter that people choose and test. The Hands-on AI development screen uses 0.01, and 0.05 for the input × w + b task.

Learn more Learn more about weights and parameters

Loss

A single number for how wrong the predictions are

The loss measures the gap between a model's predictions and the correct answers, boiled down to one number. Training means changing the weights so that this number goes down. The formula is called the loss function: the Hands-on AI development screen uses the average of squared errors, and other tasks use other formulas. A low loss on the training data alone does not prove the model works on new data.

Learn more Learn more about weights and parameters

Training data

The examples a model learns its weights from

Training data is the collection of examples shown to a model during training — sentences for a language model, labelled photos for an image classifier, input–answer pairs for a small regression. The model can only pick up patterns that are in this data, including its mistakes and gaps. Data set aside for checking (validation and test data) must not be used for training.

Learn more about weights and parameters

Evaluation metric

A score for how well a model does on data it has not seen

Evaluation means measuring how well a trained model performs, using data it did not learn from and a metric — a fixed way of scoring the results. Accuracy, the share of correct answers, is the simplest; other metrics count different kinds of mistakes. A good score on one test set is evidence, not proof: look at the wrong answers too, and keep the test data out of training.

Classification

Predicting which category something belongs to

Classification is a task where the answer is one of a fixed set of categories: spam or not spam, which of three iris species, which digit is in a picture. The model gives each category a score and picks the highest one (argmax). With two possible answers it is binary classification; with three or more, multi-class. When the answer is a number on a scale instead, the task is regression.

Learn more

Regression

Predicting a number on a continuous scale

Regression is a task where the answer is a number rather than a category: a house price, tomorrow's rainfall in millimetres, the result of input × 2. The model is scored by how far its numbers are from the true ones, often with squared error. The small program on the Hands-on AI development screen is a regression; deciding which iris species a flower is would be classification.

Learn more

Overfitting

Fitting the training data so closely that new data goes wrong

A model overfits when it learns the quirks and noise of its training data instead of the general pattern. It then scores very well on the examples it trained on and noticeably worse on new ones. You spot it by comparing the training score with the score on held-out validation or test data; more data, a simpler model or stopping training earlier can help.

Learn more

Hyperparameter

A setting people choose before training, not learned

Hyperparameters are the settings people choose before training starts: the learning rate, how many times to train, the number of layers, the number of neighbours k, the depth of a tree. Training does not change them — it changes the parameters (weights). Good values are found by trying several and comparing them on validation data, never on the final test data.

Learn more Learn more about weights and parameters

Validation data

Held-out data for choosing settings, separate from the test set

Data is usually split three ways: training data to learn from, validation data to compare settings such as hyperparameters, and test data used once at the end for the final score. Cross-validation splits the training data into several parts and takes turns holding one out, which gives a steadier comparison when data is scarce. Tuning while watching the test score makes that score look better than it really is.

Learn more

Activation function

The function a neuron applies after adding up its inputs

A neuron in a neural network first combines its inputs as z = w·x + b, then passes z through an activation function. Sigmoid squeezes any number into the range 0 to 1; ReLU turns negative numbers into 0 and keeps positive ones. Without such a non-straight step, stacking many layers would still add up to one straight-line calculation, and the network could not learn curved patterns.

Learn more

Runner (inference engine)

The program that loads a model and makes it write text

A trained model is only a file of numbers. A runner loads those numbers, turns your text into tokens, runs the model to score the next token, picks one and repeats, showing the words as they come. Ollama and llama.cpp are runners you can use on your own computer.

Learn more

KV cache

Saved attention results so earlier tokens are not recomputed

In attention, every token produces a key and a value. During autoregressive generation the earlier tokens do not change, so their keys and values are kept in memory — the KV cache — and reused for each new token instead of being recalculated. This makes generation much faster, but the cache grows with the length of the context and can take up a lot of GPU memory.

Learn more Learn more about weights and parameters

Tool call

A structured request from the model for the app to run a tool

A model can only produce text, so it cannot act on its own. In a tool call it outputs a structured request — the tool's name and its arguments, usually as JSON — and the app checks it, asks for permission if needed and runs the tool. The result goes back to the model as more context. Repeating this loop is what people call an agent.

Learn more

Multimodal

Handling more than one kind of data, such as text and images

A multimodal model takes in or produces more than one kind of data — text, images, audio or video. For example, a model can receive a photo and answer a question about it in text. Every kind of input is turned into numbers the model can calculate with. Not every feature that looks multimodal is one model: an app may first turn speech into text with a separate speech-recognition model.

Learn more

Vibe coding

Describing what you want and letting AI write the code

Vibe coding means describing in plain words what you want to make — how it should look and behave — and letting an AI tool write the code, then checking the result and asking for changes. It is a quick way to try ideas and build small web apps or games. You still have to test what comes out, because generated code can contain mistakes or security problems. On SONUB's Vibe Coding screen, Lyen builds the app and shows a preview.

Learn more

Query, key and value

The three vectors attention uses to look things up

In attention, every position makes three vectors from its token. The query says what this position is looking for, each key says what an earlier position contains, and each value is the information that position passes on. The model compares the query with every key, turns the scores into weights that add up to 1, and mixes the values with those weights.

Learn more

BPE

A tokenizer method that keeps merging the most frequent pair

BPE (byte pair encoding) builds a tokenizer from training text. It starts with single characters or bytes, finds the pair of neighbouring pieces that appears most often, merges it into a new piece, and repeats until the vocabulary is big enough. Common words end up as one token, while rare words are split into several pieces, so any text can still be written.

Learn more Learn more about GPT

Merge rules

The ordered list of pairs a BPE tokenizer joins

While BPE learns, it writes down every pair it merged, in order. That list is the merge rules. To tokenize new text, the tokenizer applies the same rules in the same order. The rules are saved with the vocabulary; if you change them, the token numbers change too, so the model weights must be trained again.

Learn more Learn more about weights and parameters

Chat history

The earlier messages sent to the model with each new question

A language model does not keep anything between requests. A chat app seems to remember because it sends the earlier messages again together with the new question. That list is the chat history. It has to fit in the model's context length, so long chats are cut or summarised. Without it, every question is answered on its own.

Learn more

Computation graph

A record of which calculation used which numbers

While a model computes its answer, a training library records every step: which numbers went into which addition or multiplication and what came out. That chain of steps is the computation graph. Backpropagation walks it backwards from the loss and works out, step by step, how much each number affected the result.

Learn more

Decoder

A Transformer that writes the next token from earlier ones

A decoder is a Transformer that sees only the tokens before the current position and predicts the next one. It then adds that token and repeats, which is how GPT-style models write text. The original Transformer also had an encoder that reads a whole input at once, but most chat models today are decoder-only.

Learn more Learn more about GPT

Diffusion model

A model that makes pictures by removing noise step by step

A diffusion model starts from an image of random noise and removes a little noise at each step, guided by your text, until a picture appears. It is trained by adding noise to real pictures and learning to undo it. Many image and video generators, such as Stable Diffusion, work this way, unlike language models that write one token at a time.

Learn more

encode / decode

Turning text into token numbers, and numbers back into text

encode is the tokenizer step that cuts text into tokens and replaces each with its number from the vocabulary. decode does the reverse: it looks up each number and joins the pieces back into text. A good tokenizer gives back exactly the original text after encode and then decode, which is a simple test worth running.

Learn more

Execution provider

The ONNX Runtime plug-in that runs a model on a given chip

ONNX Runtime does not talk to every chip by itself. An execution provider is the part that hands the model's calculations to one kind of hardware, such as an NVIDIA GPU (CUDA or TensorRT), an Apple chip (Core ML) or plain CPU. You list the providers you want in order, and parts a provider cannot run fall back to the next one.

Learn more

FreeToken

A runtime for running very large MoE models on a personal PC

FreeToken is a runtime introduced on the /ai/internals page. It is built to run very large MoE models, which use only some of their experts for each token, on a personal computer. It treats the NVIDIA GPU, the CPU, main memory (RAM) and the links between them as one inference machine.

Learn more

Gradient clipping

Shrinking the gradient when it gets too large

Sometimes one batch produces a huge gradient, and one update throws the weights far off so that the loss jumps or becomes nan. Gradient clipping measures the size of the whole gradient and, if it is above a set limit, scales it down to that limit before the update. The direction stays the same; only the step gets shorter.

Learn more Learn more about weights and parameters

Normalization

Rescaling numbers inside a network so training stays stable

As numbers pass through many layers they can grow or shrink until training breaks. Normalization rescales them at each step. Transformers use layer normalization: for each token it shifts the numbers to an average of 0 and a spread of 1, then multiplies and adds two learned sets of numbers, which are also parameters.

Learn more Learn more about weights and parameters

MLP

A basic neural network of layers stacked one after another

An MLP (multilayer perceptron) passes numbers through two or more layers. Each layer multiplies by weights, adds a bias and applies an activation function such as ReLU or GELU. Inside every Transformer block there is a small two-layer MLP that works on each token separately and changes its features after attention has mixed in information from other tokens.

Learn more Learn more about GPT Learn more about weights and parameters

Momentum

Carrying part of the last update into the next one

Plain SGD moves the weights only by the current gradient, so it can zigzag. Momentum keeps a running sum of past updates and adds part of it to each new step, so the weights keep rolling in a steady direction and small bumps matter less. That running sum is extra state the optimizer must save in a checkpoint; plain SGD has none.

Learn more Learn more about weights and parameters

Negative log

−log(p): a number that grows as a probability gets smaller

Taking the log of a probability and putting a minus in front gives a number that is 0 when the probability is 1 and grows quickly as the probability drops toward 0. Training uses it as the loss for the correct token: a confident right answer costs almost nothing, a confident wrong one costs a lot.

Learn more

ONNX

A shared file format for AI models

ONNX (Open Neural Network Exchange) is an open file format for models. A model trained in PyTorch or another framework can be exported to an .onnx file and then run by different programs on different devices, without the original training code. Microsoft and Facebook started it in 2017.

Learn more

ONNX Runtime

An engine that runs ONNX models on many devices

ONNX Runtime is Microsoft's open-source engine for running .onnx models. It works on Windows, macOS, Linux, phones and in the browser, and uses execution providers to reach GPUs and other accelerators. On SONUB it runs the voice model that reads text aloud.

Learn more

Output layer

The last layer: one score for each vocabulary token

The output layer turns the final vector of a position into one score per token in the vocabulary. Softmax then turns those scores into next-token probabilities. Because it needs one row of weights per token, a large vocabulary makes this layer large.

Learn more Learn more about weights and parameters

3B, 7B, 8B (parameter count)

A model size: B means billion parameters, not bytes

Names like 3B, 7B or 70B give the number of parameters: 7B means about 7 billion single numbers. It is not the file size and not the number of vectors. The size in memory depends on how many bytes each number uses, so the same 8B model is about 16 GB in 16 bits and about 4 GB in 4 bits, before extra overhead.

Learn more

Quantization scale

The multiplier that turns stored integers back into values

A quantized file stores weights as small integers. To use them, the runtime multiplies each integer by a scale saved next to it. Formats like GGUF keep one scale for each small block of weights, such as 32 numbers, so the file holds these scales and other metadata on top of the integers. That is why a real file is a little larger than the simple estimate.

Learn more Learn more about weights and parameters

Residual connection

Adding a layer's input back to its output

A residual connection adds what went into a layer to what came out of it: output = input + layer(input). The original information is kept, and the layer only has to learn what to change. It also gives gradients a short path back through many layers, which is why deep Transformers can be trained at all.

Learn more

RoPE

Telling attention a token's position by rotating its vectors

RoPE (rotary position embedding) gives position information by rotating each query and key vector by an angle that depends on the token's position. When attention compares two tokens, the result then depends on how far apart they are. It was proposed in 2021 and is used by many open models, including Llama.

Learn more

SGD

Nudging weights against each small batch's gradient

SGD (stochastic gradient descent) is the simplest training rule: compute the gradient of the loss on a small random batch, then move every weight a small step against it, the step size being the learning rate. Repeat with the next batch. Optimizers such as Adam add extra state, like momentum, on top of this idea; plain SGD has nothing extra to save.

Learn more Learn more about weights and parameters

sherpa-onnx

An open-source toolkit for offline speech recognition and TTS

sherpa-onnx is an open-source project from the Next-gen Kaldi team that runs speech models with ONNX Runtime. It can turn speech into text and text into speech without an internet connection, on computers, phones and small boards. On SONUB it is the engine that turns your voice into text.

Learn more

SLM

A small language model that can run on ordinary devices

An SLM (small language model) works like an LLM but has far fewer parameters, so it can run on a laptop or phone, answer faster and cost less. There is no fixed cut-off; models with a few billion parameters or less are usually called small. They are weaker at broad knowledge and long reasoning, but good for narrow tasks.

Learn more Learn more about weights and parameters

Speech-to-text

Turning spoken words into written text

Speech-to-text (STT), also called speech recognition, turns the sound of speech into letters. A model listens to short slices of sound and writes the most likely words. The text can then be sent to a language model. Some newer models can take sound directly without writing it down first.

Learn more

TensorRT-LLM

NVIDIA's library for running LLMs fast on its GPUs

TensorRT-LLM is an open-source library from NVIDIA that optimizes large language models for NVIDIA GPUs. It compiles the model for the exact GPU and adds tricks such as batching many requests and quantization, so servers can answer more users at once. It only targets NVIDIA hardware.

Learn more

Text-to-speech

Turning written text into a spoken voice

Text-to-speech (TTS), or speech synthesis, reads text aloud. A model turns the letters into sound, choosing pronunciation, rhythm and tone. On SONUB, Lyen's voice is made this way with a model run by ONNX Runtime.

Learn more

Training step

One update of the weights during training

A training step is one round of: take a batch, run the model forward, compute the loss, run backpropagation and update the weights. Training logs usually print the step number with the loss, so you can watch the loss fall as steps go by. One pass over the whole dataset is a different unit, called an epoch.

Learn more Learn more about weights and parameters

vLLM

An open-source server engine for serving LLMs fast

vLLM is an open-source engine, started at UC Berkeley, for serving language models to many users. Its PagedAttention method stores the KV cache in small pages, like a computer's memory, so little GPU memory is wasted and many requests can be batched together. It offers an API in the same shape as OpenAI's.

Learn more

VLM

A language model that also reads images

A VLM (vision language model) takes pictures as well as text and answers in text. An image part turns the picture into vectors the language model can read alongside the tokens. You can ask it what is in a photo, read a chart or a screenshot. It still writes text; making pictures is the job of other models such as diffusion models.

Learn more

Attention head

One complete set of attention calculations

An attention head has its own query, key and value weights and computes attention once. A layer usually has several heads side by side, so each can learn to look for a different kind of link, such as the previous word or the subject of the sentence. Their results are joined and passed on. Seeing where one head looks is a useful clue, not a full explanation of the model.

Learn more Learn more about GPT Learn more about weights and parameters

llama.cpp

A C/C++ runner for language models on your own computer

llama.cpp is an open-source program, started by Georgi Gerganov, that runs language models in plain C/C++ on CPUs and GPUs, including Apple chips, without Python. It reads GGUF files and comes with tools to convert and quantize models. Many other apps, including Ollama and phone apps, are built on it.

Learn more

Model checkpoint

A saved copy of a model's weights during or after training

A checkpoint is a file that saves the weights, and often the settings, optimizer state and step number, at one moment of training. If training stops, you can continue from it; when training ends, the last checkpoint is the model you run. A model checkpoint is different from a Claude Code checkpoint, which rewinds file edits.

Learn more Learn more about GPT Learn more about weights and parameters

Positional embedding

A vector that tells the model where a token sits in the text

Attention by itself does not know the order of tokens, so "dog bites man" and "man bites dog" would look the same. A positional embedding adds a vector for each position to the token's own vector. GPT-2 learns one vector per position, up to 1,024 positions; other models use different methods such as RoPE.

Learn more Learn more about GPT

Transformer block

One repeated layer of a Transformer: attention plus an MLP

A Transformer block is the unit that is stacked again and again. Inside, attention mixes information between tokens, then a small MLP changes each token's features, with normalization and residual additions around both. GPT-2 small stacks 12 identical blocks; bigger models stack more and make each one wider.

Learn more Learn more about GPT

Backpropagation

Tracing the error back to find each weight's gradient

After the forward pass gives a loss, backpropagation walks the computation graph backwards and uses the chain rule to find the gradient of the loss for every weight: how much the loss would change if that weight changed a little. Gradient descent then uses those gradients to update the weights. In PyTorch one call, loss.backward(), does it.

Learn more Learn more about weights and parameters

PyTorch

The leading Python library for neural networks

PyTorch is an open-source deep learning library for Python, first released by Meta (then Facebook) and now run by the PyTorch Foundation under the Linux Foundation. It gives tensors that can live on a GPU and automatic differentiation, so loss.backward() computes all gradients for you. It is imported as torch.

Learn more

GPT

A Transformer language model that predicts the next token

GPT stands for Generative Pre-trained Transformer. It is a decoder-only Transformer trained on a large amount of text to predict the next token, then used to write text one token at a time. OpenAI named its models this way, from GPT-1 in 2018 to today's GPT models behind ChatGPT, and the same design is used by many other models.

Learn more

Vocabulary

The list of token pieces a tokenizer knows, each with an ID

A tokenizer's vocabulary is the fixed list of pieces it can produce, each with a number (ID). The model has one embedding row and one output score per entry, so the vocabulary size shapes the model. A model only works with the vocabulary it was trained with: swap in another and the numbers mean different things.

Learn more Learn more about GPT

Cross-entropy

The usual next-token loss: −log of the right token's probability

Cross-entropy loss looks only at the probability the model gave to the correct answer and takes its negative log. If the right token got probability 1, the loss is 0; the lower that probability, the larger the loss. Averaged over many tokens, it is the number language-model training tries to push down. A low loss means good guesses on this data, not that the text is true.

Learn more

Derivative

How much an output changes when an input changes a little

A derivative measures how fast one value changes when another changes by a tiny amount. In training, the derivative of the loss with respect to a weight says which way and how strongly to move that weight. A gradient is just the derivatives for all weights together. You do not have to compute them by hand: libraries do it automatically.

Learn more Learn more about weights and parameters

Dropout

Switching off random parts of a network during training

Dropout sets a random share of a layer's outputs to zero at each training step, for example 10%. The network cannot lean on any single unit, which helps against overfitting. At inference dropout is turned off and every unit is used. A rate set too high makes training slow and the model weak.

Learn more

Forward pass

Running the input through every layer to the output

The forward pass is the model doing its normal calculation: the input goes through every layer in order and comes out as scores or a prediction. In training, the loss is computed from that output and backpropagation then runs the other way. At inference only the forward pass is needed.

Learn more

Random seed

A starting number that makes "random" results repeatable

Computers make random numbers from a starting value called the seed. The same seed gives the same sequence, so training, data shuffling or sampling can be repeated exactly for checking. A seed only makes a run repeatable; it does not make an answer correct. Some GPU operations can still differ slightly between runs.

Learn more

OCR

Reading the letters in a picture or scanned page

OCR (optical character recognition) turns letters inside an image, such as a photo or a scanned PDF, into real text a computer can search and copy. A scanned PDF is only pictures of pages until OCR reads them. Results can contain mistakes, especially with handwriting or blurry images, so important text should be checked.

Learn more

Adam

A widely used optimizer that adapts the step for each weight

Adam is an optimizer published in 2014 and now the default choice for training most neural networks, including Transformers. For every weight it keeps a running average of recent gradients (like momentum) and of their size, and uses them to choose a suitable step for that weight. It usually trains faster and more smoothly than plain SGD, at the cost of storing that extra state.

Learn more Learn more about weights and parameters

Adapter

A small set of extra weights trained on top of a frozen model

Instead of changing all of a model's weights in fine-tuning, you can freeze them and train a small adapter that is added alongside. LoRA is the best-known kind: it learns two thin matrices whose product adjusts a weight matrix. The adapter file is tiny compared with the model, and you can keep several adapters for different tasks on the same base model.

Learn more Learn more about weights and parameters

Agent memory

What an agent saves and reloads about earlier work and rules

A language model forgets everything between sessions. Agent memory is the part of the harness that writes down useful facts, rules and progress, usually in files, and loads them back into the context next time. Claude Code, for example, reads CLAUDE.md and its auto memory at the start of each session. This memory is text in files, not the computer's RAM.

Learn more

Agentic system

A language model joined with tools to do work

An agentic system is any setup that joins a language model with tools, files and a loop so that it can carry out tasks, not just answer once. Anthropic uses the term for both fixed workflows, where code decides the steps, and agents, where the model decides its own steps. The phrase is used when talking about how such a system is designed.

Learn more

argmax

The position of the largest value, not the value itself

max returns the largest number in a list; argmax returns where it is. A classifier uses argmax to pick the class with the highest score, and greedy decoding uses it to pick the most likely next token. Positions are usually counted from 0.

Learn more

Baseline model

A very simple model that sets the score to beat

Before trusting a clever model, compare it with a simple baseline, such as always guessing the most common class or using an average. If your model barely beats the baseline, it has learned little. Reporting the baseline next to the score shows what the number really means.

Learn more

Batch

A group of examples processed together in one step

Training does not look at one example at a time. It takes a batch, for example 12 chunks of text, computes the loss for all of them together and makes one update. Larger batches use the GPU better but need more memory; if training runs out of memory, lowering the batch size is the first thing to try.

Learn more Learn more about GPT

Block size

How many tokens the model reads at once — its context length

In nanoGPT and similar code, block size is the maximum number of tokens in one training example, which is also the longest context the model can use. Memory for attention grows quickly with it, so a smaller block size is a common fix when training runs out of memory. A model cannot look further back than its block size.

Learn more Learn more about GPT

BM25

A classic search formula that ranks by matching words

BM25 scores how well a document matches a search by the words they share. A rare word counts more than a common one, repeating a word helps less and less (saturation), and long documents are adjusted so they do not win just by being long. It is fast and good at exact names and codes; embedding search is better at the same meaning in different words, and many systems use both.

Learn more

Calibration

Whether a model's scores match how often it is really right

A model is well calibrated when its scores can be read as real chances: among all answers it gave 0.8, about 80% are correct. Many models output numbers between 0 and 1 that look like percentages but are not calibrated, so check them on held-out data before treating a score as a probability.

Learn more

Causal mask

Hiding later tokens so attention can only look back

During training the model sees a whole sentence at once, but it must predict each token using only the ones before it. The causal mask blocks every position from attending to positions after it, by setting those scores to minus infinity before softmax. Without it the model would copy the answer from the future and learn nothing useful.

Learn more

Character-level model

A language model whose tokens are single characters

A character-level model treats each letter, space and punctuation mark as one token, so its vocabulary is tiny and no tokenizer has to be learned. It is easy for practice, such as nanoGPT's Shakespeare example, but needs many more steps per sentence than models with word-piece tokens. Its weights only fit its own character vocabulary, so they cannot be swapped into a runner that expects GPT-2 tokens.

Learn more Learn more about GPT Learn more about weights and parameters

Chat template

The exact format a chat model expects messages in

A chat model was trained on conversations written in one fixed format, with special tokens marking where the system, user and assistant parts start and end. The chat template turns your list of messages into that text. Runners such as Ollama and llama.cpp read it from the model files. With the wrong template, a model can ramble, repeat itself or answer strangely.

Learn more

Saved instructions

Preferences ChatGPT applies to every new chat

In ChatGPT's settings you can save instructions about yourself and how you want answers, for example "I am a beginner, use short sentences". ChatGPT adds them to every new conversation, so you do not have to repeat them. They are still only instructions: they steer answers but do not guarantee them, and you should not put secrets in them.

Learn more Learn more about GPT

Closed model

A model you can use only through its company's app or API

A closed model keeps its weights private. You use it through the company's app or API, and the company decides the price, the limits and when old versions disappear. Claude, Gemini and the GPT models behind ChatGPT are closed models. They are often the strongest, but your data travels to the company's servers.

Learn more Learn more about GPT Learn more about weights and parameters

Completion promise

A phrase the agent may say only when the job is truly done

In a Ralph Loop you choose a completion promise, a short phrase such as DONE. The loop keeps going until the agent writes exactly that phrase, and the prompt tells the agent to write it only when it is really true. It works with a maximum number of rounds and a budget, because an agent may never reach the finish, so check the work yourself afterwards.

Learn more

Context management

Choosing what goes into the model's limited context

A model can read only so much at once. Context management is the harness's job of deciding what to put in: which files, which earlier messages, which tool results, and what to summarise or drop when the conversation gets long. Good context management keeps the important facts in view and leaves out noise, which matters more as tasks get longer.

Learn more

Core ML

Apple's framework for running models on iPhone, iPad and Mac

Core ML is Apple's built-in framework for running machine-learning models inside apps on Apple devices. It can use the CPU, the GPU and the Neural Engine chip, and runs on the device without sending data to a server. Models from PyTorch and other tools are converted to Core ML format first, for example with Apple's coremltools.

Learn more

Cumulative probability

A running total of probabilities, added from the largest down

Sort the candidates from most to least likely and keep adding their probabilities: that running total is the cumulative probability. Top-p sampling uses it: with p = 0.9 it keeps the smallest group of candidates whose total reaches 90% and draws only from them, so the number of candidates changes with how sure the model is.

Learn more

Decision tree

A model that classifies by asking yes/no questions in a row

A decision tree learns a chain of questions about the features, such as "petal length < 2.5 cm?", and each answer leads to the next question until a leaf gives the class. It is easy to read. Left to grow without a depth limit, it can memorise the training data perfectly and do worse on new data, which is overfitting.

Learn more

Embedding model

A model that turns text into a vector for searching by meaning

An embedding model does not write text. It reads a sentence or a document and outputs one vector, so that texts with similar meaning get vectors that point in similar directions. Search, recommendation and RAG systems use these vectors to find related text. A small one can even run on a phone to search your own notes.

Learn more

Embedding space

The many-dimensional space where embedding vectors sit

Every embedding vector is a point in a space with hundreds of dimensions. In that space, things the model treats as similar end up close together. Distances only make sense between vectors from the same model: two different embedding models build different spaces, so their vectors cannot be compared.

Learn more

Feed-forward layer

The part of a Transformer block that works on each token alone

After attention mixes information between tokens, the feed-forward layer processes each token's vector separately with the same small network: usually a wider layer, an activation function such as GELU, and a layer back to the original width. It is the block's MLP, and in large models it holds most of the parameters.

Learn more Learn more about GPT Learn more about weights and parameters

GELU

A smooth activation function used in many Transformers

GELU (Gaussian Error Linear Unit) is an activation function like ReLU, but with a smooth bend instead of a sharp corner at zero: large positive inputs pass almost unchanged, large negative ones become almost 0, and values near zero are softly reduced. GPT-2 and BERT use it in their feed-forward layers.

Learn more Learn more about GPT

Generalization

Doing well on new data the model has never seen

The point of training is not to score well on the training examples but to do well on new ones. That ability is generalization. You measure it on data held back from training. A model that is perfect on its training data but poor on new data has memorised instead of generalised, which is overfitting.

Learn more

GPT-2

OpenAI's 2019 Transformer model, a classic for learning

GPT-2 is a decoder-only Transformer language model that OpenAI released in 2019, in sizes from 124 million to 1.5 billion parameters. Its design — token and position embeddings, stacked Transformer blocks, an output layer over a 50,257-token vocabulary — is simple and well documented, so projects such as nanoGPT rebuild it to teach how LLMs work.

Learn more Learn more about GPT Learn more about weights and parameters

Handoff

One agent passing a task, with its context, to another agent

In a handoff, an agent hands the rest of a task to another agent that is better suited, along with what it needs to know. The harness decides how much context goes with it, which model takes over and how the result comes back. Too little context and the next agent repeats work; too much and it gets lost.

Learn more

Hidden layer

A layer between a network's input and its output

A hidden layer sits between the input and the output layer. It takes numbers in, multiplies them by weights, applies an activation function and passes new numbers on, building features that are not directly visible in the input or the answer. Deep learning simply means having many hidden layers.

Learn more Learn more about weights and parameters

Imagen

Google's earlier family of text-to-image models

Imagen is a family of Google models that turn a text description into an image. As of October 2026, the SONUB course notes that the older Imagen models in the Gemini API have been retired and Google's image generation and editing there is offered through the Nano Banana models.

Learn more

Instruction following

How faithfully a model does what it was told

Instruction following is how well a model obeys the instructions in a prompt or system prompt: the format, the length, the language, the things it must not do. Models differ a lot here and are tested on it. Even a strong model can drift, so an app must not rely on instructions alone for safety; real limits such as permissions have to be enforced by code.

Learn more

k-nearest neighbours (k-NN)

Classifying by the k most similar training examples

k-NN has almost no training: it keeps all training examples. To classify a new one, it finds the k closest examples and takes the most common class among them. The neighbour count k is a hyperparameter you choose outside training: small k follows noise, large k blurs differences.

Learn more

LangChain

An open-source framework for LLM apps and agents

LangChain is an open-source framework, available for Python and JavaScript, for building applications on top of language models: connecting a model to tools, documents, memory and other models. Its companion LangGraph is used to build agents with explicit steps. LangChain describes the harness as everything around the model, which the SONUB course quotes.

Learn more

LiteRT

Google's runtime for models on phones and small devices

LiteRT is Google's on-device runtime for machine-learning models, the new name since 2024 for TensorFlow Lite. It runs models on Android, iOS, the web and small boards, using the phone's GPU or other accelerators when available, without sending data to a server.

Learn more

llama.rn

A library that puts llama.cpp inside React Native apps

llama.rn is an open-source React Native library that wraps llama.cpp, so a phone app written in React Native can load a GGUF model and generate text on the device, without a server. PocketPal AI is one app built this way. Flutter apps use other llama.cpp bindings for the same job.

Learn more

Main agent

The agent you talk to, which hands parts to sub-agents

The main agent is the one in your conversation. For a part of the job, such as searching a whole project, it can start a sub-agent with its own fresh context and fewer tools, then receive only the summary. That keeps the main agent's context clean. The main agent stays responsible for the final answer.

Learn more

Maximum number of rounds

The limit on how many times a loop may run

An agent loop may never reach its finish line by itself, and every round costs tokens and money. The maximum number of rounds is a hard stop: after that many rounds the loop ends no matter what. Set it every time, together with a checkable finish line and a token budget.

Learn more

MCP host

The AI app the person uses, which holds the MCP clients

In MCP there are three roles. The host is the AI app a person uses, such as Claude Code, Claude Desktop or a code editor. Inside it, one client per server keeps the connection, and each server offers tools and data. The host decides which servers to start and should ask the user before a tool is used.

Learn more

initialize

The first MCP request that agrees on a version (spec 2025-11-25 and earlier)

In MCP specs up to 2025-11-25, every session starts with initialize. The client sends the protocol version it speaks and what it can do; the server answers with the version it will use, what it offers (for example tools) and its name. The client then sends the notifications/initialized notice, and only after that can tools/list and tools/call be used. The latest spec (2026-07-28) drops this handshake: every request carries its version in _meta.

Learn more

tools/call

The MCP request that asks a server to run one of its tools

tools/call names a tool and gives its arguments. The server runs the tool and replies with the result, usually as text content, or with an error. The model decides which tool to use, but the host app sends the request and should ask the user before running anything risky.

Learn more

tools/list

The MCP request that asks a server which tools it has

tools/list asks an MCP server what it can do. The server returns each tool's name, a description the model reads to decide when to use it, and an input schema describing the arguments. Because the model trusts these descriptions, only connect to servers you trust.

Learn more

Nano Banana

Google's Gemini image generation and editing models

Nano Banana is the popular name Google uses for the Gemini models that create and edit images from text. You can describe a new picture or upload one and ask for changes, such as a different background, while keeping the same person or object. It is available in the Gemini app and through the Gemini API.

Learn more

nanochat

Karpathy's full-stack project for a small chat LLM

nanochat is an open-source project by Andrej Karpathy, released in 2025 as the successor to nanoGPT. It covers the whole path in one small codebase: training a tokenizer, pre-training, fine-tuning for chat, evaluation, and a web page to talk to the result. It is meant for learning how a ChatGPT-like model is built end to end.

Learn more Learn more about GPT

nanoGPT

Short PyTorch code for training GPT-2-style models

nanoGPT is Andrej Karpathy's open-source code for training and fine-tuning GPT-style models, in a few hundred lines of PyTorch. It can reproduce GPT-2 on big GPUs or train a tiny character-level Shakespeare model on a laptop CPU in minutes. Its author now marks it as old and points to nanochat, but it is still a clear way to see a GPT-2-style model.

Learn more Learn more about GPT

Ollama

An app that downloads and runs open models on your computer

Ollama is a free runner for macOS, Windows and Linux. One command downloads an open model and starts chatting with it, and Ollama also serves a local API that your own programs can call. It handles quantized model files and chat templates for you, so it is an easy first way to run a model offline.

Learn more

Open model

A model whose weights you can download and run yourself

An open model publishes its weights, so you can download it and run it on your own computer or server, often for free and without sending data away. Many are open-weight rather than fully open source: the weights are shared, but not always the training data or code, and the licence may set limits. Llama, Gemma and Qwen are examples.

Learn more

Optimizer

The rule that turns gradients into weight updates

Backpropagation tells you the gradient for each weight; the optimizer decides how to change the weights with it. Plain SGD takes a fixed step against the gradient. Adam and others also keep a memory of past gradients to choose better steps. The optimizer's state is saved in checkpoints so training can resume.

Learn more Learn more about weights and parameters

PocketPal AI

A free phone app for chatting with small models offline

PocketPal AI is an open-source app for iPhone and Android that downloads small language models in GGUF format and runs them on the phone, so you can chat without an internet connection. It is built with llama.rn on top of llama.cpp. Phone memory is small, so it works best with small, strongly quantized models.

Learn more

Post-training

Training after pre-training to teach specific behaviour

Pre-training teaches a model to continue text from huge amounts of data. Post-training comes after: fine-tuning on example conversations, learning from human or automated feedback, and practising tasks such as using tools. This is where a raw text predictor becomes a helpful assistant, and where coding agents learn to work well with their harness.

Learn more

Q4_K_M

A common 4-bit quantization type for GGUF files

Q4_K_M is one of llama.cpp's "k-quant" types. It stores most weights in about 4 bits, keeps some more sensitive parts in more bits (the M stands for medium), and groups weights into blocks that share scales. It is a popular balance between file size and quality, at roughly 30% of the FP16 size.

Learn more Learn more about weights and parameters

Recommender system

AI that predicts what you will like and suggests it

A recommender system predicts which videos, songs or products a person is likely to want, from what they and similar people did before, and shows those first. It is one of the most widely used kinds of AI, even though it does not chat or write text. It is a good reminder that AI is much more than ChatGPT.

Learn more Learn more about GPT

Regression coefficient

The learned number a regression model multiplies each input by

A linear regression predicts with a formula such as price = a × size + b. The numbers a and b are found from the data during training: they are the coefficients, and they are parameters, unlike settings you choose yourself such as tree depth. A coefficient shows how much the prediction moves when that input grows by one.

Learn more Learn more about weights and parameters

Rule-based system

A program that decides only by rules a person wrote

A rule-based system follows if-then rules written by people, such as "if the subject contains 'free money', mark it as spam". It does not learn from data, so it is easy to explain but breaks on cases nobody thought of. Machine learning instead finds the rules from examples. Both count as AI.

Learn more

Similarity

A number for how alike two vectors or texts are

Similarity measures how close two vectors are. Cosine similarity, the most common, compares their directions: 1 means the same direction, 0 unrelated, −1 opposite. Embedding search ranks documents by it. High similarity means related meaning, not that two sentences say the same true thing.

Learn more

scikit-learn fit

The scikit-learn method that trains a model on data

In scikit-learn every model is trained the same way: model.fit(X, y) learns from the inputs X and the answers y. After that, model.predict(X_new) gives predictions. Fit only on the training split and keep the test split for the end, otherwise the score looks better than it is.

Learn more

Stop condition

A checkable rule that says when an agent's job is done

A stop condition tells an agent when to stop, for example "all tests in tests/ pass and the page opens without errors". The agent checks it after each step and keeps working until it is true. A vague wish like "make it better" never ends, so a long-running loop also needs a limit on rounds or tokens.

Learn more

Stop token

A special token that means "the text ends here"

A stop token is a special token that marks the end of a text. During training the model sees it at the end of every example, so it learns where an answer finishes. While generating, the program stops as soon as this token is picked or a length limit is reached. Without it, the model would keep adding words.

Learn more Learn more about GPT

Special token

A reserved token that marks a place instead of text

A special token is a token the tokenizer reserves for a job instead of a piece of text. [BOS] marks the beginning of a text and [EOS] the end — generation stops when the model produces it. [PAD] fills empty space and [UNK] stands for a symbol the tokenizer does not know. XSLM uses a newline the way real models use EOS.

Learn more

safetensors

A safe file format for storing model weights

safetensors is a file format for saving a model's weights. The file holds only numbers plus a small JSON header that lists each layer's name, data type and shape. Older formats based on Python pickle could run hidden code when the file was opened; safetensors cannot, which is why Hugging Face uses it by default.

Learn more Learn more about weights and parameters

Pre-training

The first and largest stage of training a language model

Pre-training is the first stage of building a language model: the model learns to predict the next token over a huge amount of text. This gives it a general grasp of language, but it does not yet follow instructions well. Later stages such as instruction tuning shape it into an assistant.

Learn more

Instruction tuning (SFT)

Extra training on request-and-answer pairs to follow instructions

Instruction tuning, also called SFT (supervised fine-tuning), trains a pre-trained model further on pairs of a request and a good answer. This teaches the model to answer the way people ask, instead of just continuing the text. It is one part of post-training.

Learn more

Llama

A family of open-weight language models from Meta

Llama is a family of language models made by Meta. Meta publishes the model weights, so anyone can download them and run them on their own computer under Meta's license terms. Tools such as llama.cpp and Ollama started out by running Llama models.

Learn more about weights and parameters

Qwen

A family of language models from Alibaba

Qwen is a family of language models made by Alibaba Cloud. Many Qwen models are released with open weights, from small sizes for laptops to large ones for servers, including coding models such as Qwen3-Coder. They can also be used through services such as OpenRouter.

Learn more about weights and parameters

Term frequency saturation

In keyword search, extra repeats of a word add less and less to the score

In BM25 keyword search, a word that appears often in a document raises the document's score, but each extra appearance adds less than the one before. The score levels off instead of growing without end. This stops a document from winning just by repeating one word many times.

Learn more

Threshold

The cut-off number above which a model's answer counts as "yes"

A classifier often gives a score, not a final answer. The threshold is the line you draw: a score above it means "yes", below it means "no". Moving the threshold changes which examples are called positive — raise it and the model says "yes" less often but more carefully. A score of 0.7 is not automatically a 70% probability.

Learn more

Token budget

The most tokens a task or agent loop may use

A token budget caps how many tokens an agent may spend on a task. Since AI services charge per token, the budget is also a cost limit. A loop that has no budget can run all night and keep spending; when the budget runs out, the agent stops even if the goal is not met.

Learn more

Validation loss

The loss measured on text the model did not train on

During training you watch two numbers. The training loss is measured on the text the model learns from; the validation loss on separate text it never trains on. If the training loss keeps falling while the validation loss starts to rise, the model is memorising instead of learning general patterns — that is the moment to stop or shrink the model.

Learn more

Antigravity CLI

Google's coding agent for the terminal, started with agy

Antigravity CLI is Google's coding agent that runs in a terminal. You install it with the script from the official page and start it with the agy command in a project folder; the first time, a browser opens to sign in with a Google account. It uses Google's Gemini models and, like Claude Code and Codex, reads, changes and runs files after you approve its plan. Google also publishes a guide for people moving from the older Gemini CLI.

Learn more

Claude Cowork

A Claude feature that carries out multi-step work across your files and apps

Claude Cowork is a feature of the Claude desktop app for multi-step work that is not programming: sorting files in a folder, turning a pile of receipts into a spreadsheet, or drafting a report from several documents. You give it a folder and describe the result; it plans the steps and works through them while you watch. Like every agent, what it produces is a draft you still have to check.

Learn more

Feature

One input value a model uses to decide, such as house size

A feature is one piece of input data a model looks at. A house-price model might use size, number of rooms and distance to the station; in a table, each column is usually one feature. Choosing useful features matters: features unrelated to the answer add noise and can make the model worse.

Learn more

Hugging Face

A website and company where people share AI models and datasets

Hugging Face is a website where people publish and download AI models, datasets and small demo apps — much as GitHub is for code. The company also makes open-source Python libraries, such as Transformers, that load and run those models. Many open models, from tiny to very large, are downloaded from there.

Image generation

An AI making a new picture from a written description

Image generation means an AI model turns a written description (a prompt) into a new picture, and many models can also edit a picture you give them. Good results come from describing the subject, style, size and what must not change, then fixing one thing at a time. Before using a picture, check it for mistakes such as wrong text or extra fingers, and for rights to people, brands and art styles.

Learn more

Image recognition

AI that tells what is in a picture

Image recognition is AI that looks at a picture and says what is in it: a cat, a stop sign, a handwritten digit. It is usually done with deep neural networks trained on many labelled photos. Phones use it to sort the photo album, and cars use it to read road signs.

LoRA

A cheap way to fine-tune: train a small add-on, keep the model frozen

LoRA (Low-Rank Adaptation) is a cheap way to fine-tune a large model. The original weights stay frozen; only small extra matrices, called an adapter, are trained and added to them. Because far fewer numbers are trained, it needs much less GPU memory and storage, and one base model can switch between several small adapters for different jobs.

Learn more about weights and parameters

Matrix multiplication

Multiplying two tables of numbers row by column

Matrix multiplication combines two matrices: each number in the result is a row of the first multiplied, item by item, with a column of the second, then added up. The inner sizes must match — a 4×3 matrix times a 3×2 matrix gives a 4×2 matrix. Almost all the work inside a neural network is matrix multiplication, which is why GPUs, built to do many of them at once, are used for AI.

Learn more

Neuron

The smallest calculating unit of a neural network

An artificial neuron takes several numbers, multiplies each by a weight, adds them together with a bias, and passes the sum through an activation function. Many neurons side by side form a layer, and layers stacked up form a neural network. The name comes from brain cells, but a neuron here is only arithmetic.

Learn more Learn more about weights and parameters

Optimization

Adjusting a model's numbers so its loss becomes as small as possible

In machine learning, optimization means changing the model's weights step by step so that the loss — how wrong its predictions are — gets smaller. Gradient descent is the usual method: work out which direction lowers the loss and move a little that way. Optimization finds good numbers for the training data, which is not the same as being right on new data.

Learn more about weights and parameters

Output format

The shape you ask the answer to take: list, table, JSON, file

The output format is the part of a prompt that says what shape the answer should have: a bulleted list, a table with given columns, JSON with given keys, or a file. Stating it saves you rewriting the answer and lets a program read the result. It is one of the six parts of a good prompt, together with role, goal, context, examples and constraints.

Learn more

Positive class

In a yes/no classifier, the "yes" side the model is looking for

In a classifier with two answers, the positive class is the one you are trying to find — spam in a spam filter, illness in a medical test. "Positive" does not mean good; it only means "the thing we look for was detected". Precision, recall and the confusion matrix are all counted relative to this class.

scikit-learn

A Python library for classic machine learning

scikit-learn is a free Python library for classic machine learning: classification, regression, clustering and model evaluation. Every model is used the same way — fit() to learn from data, predict() to answer — so it is a common first tool for learners. It is not meant for training large neural networks; PyTorch is used for that.

Token ID

The number a tokenizer gives each token in its vocabulary

A tokenizer keeps a vocabulary — a numbered list of every token it knows. A token ID is a token's number in that list. Models never see letters: text is turned into a list of token IDs, the model works with those numbers, and its output IDs are turned back into text. The same word can get different IDs in different models.

Learn more about GPT

ChatGPT

OpenAI's AI chat service

ChatGPT is a chat service made by OpenAI, opened to the public in November 2022. You type a question and a large language model writes the answer; it can also read attached files and pictures and, when that feature is on, search the web. Its answers are drafts — fluent text can still be wrong, so check facts and numbers.

Learn more Learn more about GPT

Gemini

Google's family of AI models and its chat app

Gemini is the name of Google's large language models and of the chat app built on them. The models are multimodal: they take text, pictures, sound and video. Google's coding agents, the Antigravity CLI and the earlier Gemini CLI, also run on Gemini models.

Grok

xAI's family of AI models and its chat app

Grok is the name of the large language models made by xAI, and also of the chat app built on them, on the web, on phones and inside X. Grok Build, also called the Grok CLI, is a different thing: xAI's coding agent that runs in the terminal. In short, Grok is the model, the Grok CLI is the tool around it.

SKILL.md

The file that defines an agent skill: name, description and steps

Every agent skill is a folder with a file named SKILL.md. At the top, between --- lines, it gives the skill's name and a description that tells the agent when to use it; below that come the instructions in plain Markdown. Agents first read only the name and description, and load the rest when a task needs it. Scripts and reference files can sit in the same folder.

Learn more

Gemini CLI

Google's earlier open-source AI agent for the terminal

Gemini CLI is an open-source AI agent from Google that runs in the terminal and uses Gemini models. Like Claude Code and Codex, it reads files, runs commands and follows instruction files, and it supports agent skills. SONUB's AI course now teaches Google's newer Antigravity CLI (agy); Google publishes a migration guide for Gemini CLI users, so check the official page before following old guides.

Resources

Data an MCP server offers for an app to read

An MCP server can offer three things: tools the model calls, prompts the user picks, and resources — data the app can read, such as a file, a record or a list of notes. Each resource has its own address (URI), for example notes://shopping. Tools do things; resources only hand over content.

Learn more

Claude

Anthropic's AI model family and chat service

Claude is the family of large language models made by Anthropic, and also the name of its chat app on the web, desktop and phone. Claude Code is a different thing: a harness program that uses a Claude model to work on your files. In short, Claude is the model, Claude Code is the tool around it.

GitHub Copilot

GitHub's AI assistant for writing code

GitHub Copilot is GitHub's AI coding assistant. In a code editor it suggests the next lines as you type and answers questions in a chat panel; in agent mode and in the Copilot CLI it can also change files and run commands. It reads agent skills too. Its suggestions are guesses, so you still read and test them.

OpenCode

An open-source AI coding agent for the terminal

OpenCode is an open-source coding agent that runs in the terminal. It works like Claude Code or Codex — it reads the project, changes files and runs commands — but you can connect it to models from many different providers. It also reads agent skills.

Learn more

Grok CLI

xAI's AI coding agent for the terminal (Grok Build)

Grok is the name of xAI's AI models. Grok Build, also called the Grok CLI, is xAI's coding agent that runs in the terminal, like Claude Code or Codex. It is installed with the official install script or as a global npm package, and you check the install with its version command.

Orca

An open-source desktop app for running several AI coding agents side by side

Orca is an open-source desktop app for running several AI coding agents at once, such as Claude Code, Codex and OpenCode. Each agent works in its own Git worktree, so their changes do not collide, and you compare and review the results in one window. You bring your own subscription for each agent.

AlphaGo

The Go-playing AI made by Google DeepMind

AlphaGo is a program for the board game Go, made by Google DeepMind. In March 2016 it beat Lee Sedol, one of the world's top players, 4 games to 1 — something many experts had expected to take another decade. It combined deep neural networks with search, and improved by playing against itself (reinforcement learning).

Learn more

Binary classification

Classification where the answer is one of exactly two choices

Binary classification is a classification problem with only two possible answers: spam or not spam, fraud or normal, sick or healthy. The model usually gives a score between 0 and 1, and a threshold turns it into "yes" or "no". The side you are trying to detect is called the positive class.

Learn more

Multiclass classification

Classification where the answer is one of three or more choices

In multiclass classification each input gets exactly one label out of three or more: cat, dog or rabbit; the digits 0 to 9. The model gives a score for every class, softmax turns them into probabilities, and the highest one is the answer. If one input can have several labels at once, that is a different task (multi-label).

Learn more

Chain-of-thought

A prompting method that asks the model to write out its steps

Chain-of-thought (CoT) prompting asks the model to write the steps of its working before the final answer, for example "solve step by step". Because a language model produces one token at a time, the written steps become context for the next ones, which tends to improve maths and logic answers. The written steps are text, not a guaranteed record of how the answer was really computed.

Chain rule

The rule for the slope of a function inside a function: multiply the slopes

The chain rule says that the slope (derivative) of a composite function equals the slope of the outer function times the slope of the inner one. A neural network is a long chain of functions, so backpropagation uses the chain rule again and again, from the output back to the first layer, to find how each weight affects the loss. Multiplying many small slopes is why gradients can vanish, and many large ones why they can explode.

Learn more about weights and parameters

Composite function

A function made by feeding one function's output into another

A composite function puts one function inside another: first compute g(x), then feed the result to f, written f(g(x)). A neural network is a big composite function — each layer takes the previous layer's output. The chain rule is how you find the slope of such a function.

Clustering

Grouping similar data together without given answers

Clustering puts similar items into groups when nobody has labelled them — for example, splitting shop customers into groups by what and how often they buy. It is a kind of unsupervised learning: the algorithm finds the groups, and people then decide what each group means. k-means, which you tell how many groups to make, is a common method.

Learn more

Confusion matrix

A table that counts right and wrong answers by kind

A confusion matrix compares a classifier's answers with the true answers. For a yes/no task it has four cells: true positives, false positives, false negatives and true negatives. Accuracy, precision and recall are all calculated from these four counts, so the table shows not just how often the model is wrong but which way.

False positive

The model says "yes" but the true answer is "no"

A false positive is a wrong alarm: the model says the thing is there when it is not — a normal email sent to the spam folder, a healthy person flagged as sick. Many false positives mean low precision. Whether they are worse than false negatives depends on the cost of each mistake in that job.

False negative

The model says "no" but the true answer is "yes"

A false negative is a miss: the thing was there but the model did not catch it — spam that reaches the inbox, an illness a test fails to find. Many false negatives mean low recall. In medical screening a miss can be far more costly than a false alarm, so recall matters more there.

Recall

Of all the real "yes" cases, the share the model found

Recall is the share of actual positive cases that the model correctly found: true positives ÷ (true positives + false negatives). Low recall means many misses — spam slipping into the inbox. Raising recall usually lowers precision, because catching more also lets more wrong alarms through.

Precision

Of everything the model called "yes", the share that really was

Precision is the share of the model's "yes" answers that were correct: true positives ÷ (true positives + false positives). Low precision means many false alarms — normal email ending up in the spam folder. Making the model stricter raises precision but usually lowers recall. (In computing, "precision" also means how many bits a number uses — a different idea.)

F1 score

One number that combines precision and recall

The F1 score is the harmonic mean of precision and recall: 2 × P × R ÷ (P + R). It is high only when both are high; if one is good and the other poor, F1 stays low. That makes it useful when the classes are uneven, where accuracy alone can look good while the model misses most positives.

Harmonic mean

An average pulled towards the smaller value

The harmonic mean of two numbers a and b is 2ab ÷ (a + b). Unlike the ordinary average, it is pulled strongly towards the smaller number, so one weak value cannot be hidden by a strong one. The F1 score uses it to combine precision and recall.

Cosine similarity

How closely two vectors point in the same direction, from −1 to 1

Cosine similarity measures the angle between two vectors, ignoring their length. 1 means the same direction, 0 means unrelated (at right angles) and −1 means opposite. Embedding search uses it to find texts whose meaning vectors point the same way as the question's. Close vectors mean similar topics, not that a sentence is true.

Data bias

Training data that leans one way and makes a model unfair

Data bias happens when the training data does not fairly represent the people or cases the model will meet. The model then learns the skew — for example, a face recognition model trained with few photos of one group makes more mistakes on that group. Check results separately for each group, and fix the data, not only the model.

Learn more

Deep research

An AI feature that searches many sources for minutes and writes a report

Deep research is a feature of AI chat services (such as ChatGPT, Gemini and Claude) where the AI searches and reads many web pages for several minutes, then writes a report with source links. It saves hours of searching, but the report can still misread or misquote a source, so open the links and check the important claims yourself.

Learn more Learn more about GPT

Deepfake

A fake video, picture or voice made with AI to look real

A deepfake is a fake video, photo or voice recording made with deep learning so that it looks or sounds like a real person. The same technique is used legitimately in films and dubbing, but using it to put words in someone's mouth, to cheat, or to make sexual images of real people can be a crime. Check the source before believing a shocking clip.

Learn more

Dimension

How many numbers a vector holds

The dimension of a vector is how many numbers it contains: [1.2, 0.5, 3.0] is a 3-dimensional vector. Each number can be read as a position along one axis, so two numbers make a point on a flat map and three a point in space. Embeddings used by AI often have hundreds or thousands of dimensions — too many to draw, but computed the same way.

Learn more

Epoch

One full pass through all the training data

An epoch is one round in which the model has seen every example of the training data once. Training usually runs several epochs. After each one you check the loss on validation data: if it stops improving or starts rising while the training loss still falls, more epochs only make the model memorise.

Learn more

EU AI Act

The European Union's law that regulates AI by level of risk

The EU AI Act is the European Union's law on artificial intelligence, in force since 1 August 2024 and the first broad AI law of its kind. It sorts AI systems by risk: some uses are banned, high-risk uses (such as hiring or credit scoring) must meet strict rules, and others must be transparent — for example, people must be told when content is AI-generated. Its rules apply in stages over several years.

Learn more

Expert system

Early AI made of rules written by human experts

An expert system is an early kind of AI, popular in the 1970s and 1980s, built from many "if this, then that" rules written by human experts — for example, rules for diagnosing an illness. It could explain which rules it used, but it broke on cases nobody had written a rule for, and keeping thousands of rules up to date was hard. Machine learning, which learns rules from data, largely replaced it.

Learn more

Face recognition

AI that tells whose face is in a picture

Face recognition is AI that finds a face in a picture and matches it to a known person, as when a phone unlocks by looking at you. It works by turning a face into a vector and comparing vectors. It can be less accurate for groups that were under-represented in its training photos, and using it on people in public raises privacy and legal questions.

Learn more

Generative AI

AI that makes new text, pictures, sound or video

Generative AI is AI that produces new content — text, pictures, music, voices, video or code — instead of only sorting or predicting labels. Chat assistants and image generators are examples. Its output is built from patterns in the training data, so it can sound confident and still be wrong (hallucination).

Knowledge distillation

Training a small model to imitate a large one

Knowledge distillation trains a small "student" model to copy the outputs of a large "teacher" model, not just the right answers. The student learns from the teacher's full probability scores, which carry more information, so it often comes close to the teacher's quality while being much smaller and faster. It is a design trade-off: some accuracy for speed and cost.

Label

The correct answer attached to each training example

A label is the answer tag attached to a piece of training data: "cat" on a cat photo, "spam" on a spam email, the price on a house record. Supervised learning needs labels, and their quality limits the model — wrong or inconsistent labels teach wrong answers. Labelling is often slow work done by people.

Learn more

Supervised learning

Learning from examples that come with the right answers

In supervised learning the model learns from examples paired with correct answers (labels): photos marked "cat" or "dog", houses with their prices. It adjusts itself to match the answers, then predicts answers for new examples. Classification and regression are the two main kinds. It needs a lot of labelled data, which is often the expensive part.

Learn more

Unsupervised learning

Learning structure from data that has no answers attached

Unsupervised learning works on data without labels and looks for structure in it by itself — groups of similar items (clustering), unusual items, or a simpler way to describe the data. It is useful when labelling is too expensive. The groups it finds have no names; people decide what they mean.

Learn more

Reinforcement learning

Learning by trying actions and getting rewards or penalties

In reinforcement learning an agent tries actions in an environment and receives a reward or penalty for the result. Over many tries it learns which actions lead to the most reward in the long run. AlphaGo improved this way by playing against itself, and RLHF uses it to shape how chat models answer. A badly designed reward can teach the wrong behaviour.

Learn more

Reward model

A model that scores which of two answers people would prefer

A reward model is trained on comparisons where people picked the better of two answers. It learns to give a score to any answer, standing in for human judgement during reinforcement learning. Its weak spots matter: a language model can learn to please the reward model — for example with long, flattering answers — instead of really getting better.

RLHF

Reinforcement learning from human feedback: tuning a model with people's preferences

RLHF (Reinforcement Learning from Human Feedback) shapes a language model with human preferences. Typically: ① fine-tune the model on good example answers, ② have people compare pairs of answers and train a reward model on their choices, ③ use reinforcement learning so the model writes answers the reward model scores highly. It is a main reason chat assistants follow instructions and answer politely.

Model card

A short document describing what a model is for and where it fails

A model card is a document published with a model. It says what the model is for and not for, what data it was trained on, how it was evaluated, its known limits and biases, and its licence. It helps others decide whether the model fits their job. Models on Hugging Face usually come with one.

n-gram

A model that predicts the next word from the previous n−1 words by counting

An n-gram model counts how often each word follows the previous n−1 words in a text, then turns the counts into probabilities. A bigram (n = 2) looks at one previous word, a trigram at two. It is fast and easy to understand, but it cannot use anything further back, and sequences it never saw get no probability — limits that neural language models overcome.

Learn more

Numerical differentiation

Estimating a slope by nudging the input a tiny bit

Numerical differentiation estimates a slope by adding a tiny amount h to the input and seeing how much the output changes: (f(x + h) − f(x)) ÷ h. It is simple and useful for checking, but it is only approximate and needs one extra calculation for every parameter — far too slow for a model with millions of weights. Deep learning frameworks use automatic differentiation instead.

Learn more about weights and parameters

On-device AI

AI that runs on the phone or laptop itself, without a server

On-device AI runs the model on your own phone, laptop or other device instead of sending data to a server. It keeps data private, works offline and answers without network delay. The cost is limited memory, speed and battery, so on-device models are small and often quantized — they cannot match the largest cloud models.

Learn more

Perplexity

A measure of how unsure a language model is about the next token

Perplexity measures how well a language model predicts a text; lower is better. A perplexity of 10 means the model is, on average, as unsure as if it had to choose evenly among 10 tokens at each step. It comes directly from the loss (it is e raised to the average loss). Low perplexity means good prediction, not that the text is true or useful.

Positional encoding

Numbers added to each token so the model knows its position

Attention on its own treats the input as a bag of tokens and cannot tell their order. Positional encoding fixes this by turning each position — 1st, 2nd, 3rd … — into numbers and adding them to the token's embedding. Without it, "dog bites man" and "man bites dog" would look the same to a transformer.

Prediction error

How far a prediction is from the right answer

The error of a prediction is the predicted value minus the correct value. Training usually squares the errors and averages them (mean squared error) to get the loss, so big misses count much more than small ones and positive and negative errors do not cancel out. The model then adjusts its weights to make that average smaller.

Learn more Learn more about weights and parameters

Pruning

Cutting away a trained model's least important weights to make it smaller

Pruning removes weights or connections that matter little to a trained model's output, making it smaller and sometimes faster. The name comes from gardening: cutting branches the tree does not need. Too much pruning hurts accuracy, so a short round of extra training often follows. It is one of several ways to shrink a model, alongside quantization and distillation.

Learn more about weights and parameters

Reproducibility

Being able to rerun an experiment and get the same result

An experiment is reproducible when someone else can run it again with the same data, code and settings and get the same result. To make that possible, record the data version, code version, library and Python versions, the random seed and the exact commands. Even then, GPU calculations can differ slightly from run to run.

Rule-based chatbot

A chatbot that only replies with answers people wrote for set patterns

A rule-based chatbot matches what you type against rules written by people — keywords or patterns — and replies with a fixed answer. It is predictable and cheap, and you can build one with a few if statements. But it cannot handle anything outside its rules, unlike an LLM chatbot, which generates new replies.

Learn more

Speech model

An AI model that turns text into speech or speech into text

A speech model is an AI model that works with spoken sound: it turns text into a voice (speech synthesis) or a voice into text (speech recognition). Small speech models can run on your own device — SONUB's reading voice is downloaded once and then turns text into sound on your own device, while chat messages still go to a language model service.

Learn more

Transpose

A matrix with its rows and columns swapped

The transpose of a matrix swaps its rows and columns: row 1 becomes column 1, and so on. An m × n matrix becomes n × m, written Aᵀ. It is used all the time to make shapes match before matrix multiplication — for example, attention multiplies the query matrix by the transposed key matrix.

Turing test

A test of whether a machine's conversation can pass for a person's

In 1950 Alan Turing proposed the "imitation game": a judge chats in writing with a hidden person and a hidden machine, and if the judge cannot reliably tell which is the machine, it passes. It became known as the Turing test. Passing shows that a machine can imitate human conversation — not that it understands, feels or is conscious.

Learn more

Underfitting

When a model does poorly even on the data it trained on

A model underfits when it is too simple or trained too little to capture the pattern, so it gets many answers wrong even on its own training data. It is the opposite of overfitting, where the model fits the training data too closely. Fixes include a larger model, better features or more training.

Learn more

XAI

Explainable AI: methods that show why a model gave its answer

XAI (explainable AI) is the field of methods that let people see why a model produced an answer — for example, which words or pixels mattered most. It matters most where decisions affect people, such as loans, hiring and medicine, so mistakes and unfair reasons can be found and explained. An explanation is itself an approximation and should be checked.

Learn more

Amazon Bedrock

An AWS service for using AI models from several companies through one API

Amazon Bedrock is a cloud service from AWS that lets companies call AI models from several providers — including Anthropic's Claude — through AWS, with AWS billing and security settings. Claude Code can be set up to use Claude through Bedrock instead of an Anthropic account, but some features that need a claude.ai login are then unavailable.

Approval policy

The Codex setting for when the agent must ask you before acting

In Codex, the sandbox decides what the agent can technically do (write files, use the network), and the approval policy decides when it must stop and ask you. on-request asks when it needs to go outside the sandbox; never never asks, which suits scripts and isolated containers. Set the two together. It is chosen with -a or approval_policy in config.toml.

Learn more

workspace-write

Codex sandbox mode: edit and run commands only inside the project folder

workspace-write is a Codex sandbox mode. The agent may change files and run commands inside the working folder, but not elsewhere; the network is off by default and folders such as .git and .codex stay read-only. In a Git repository it is the usual choice together with the on-request approval policy. The other modes are read-only (look but change nothing) and danger-full-access.

Learn more

danger-full-access

Codex sandbox mode with no sandbox: the agent can do anything

danger-full-access turns the Codex sandbox off: the agent can read and write any file and use the network with your user's full rights. One wrong command can delete or leak your data, so use it only inside an isolated container or virtual machine that you can throw away.

Learn more

config.toml

Codex's settings file, ~/.codex/config.toml

config.toml is the file where Codex keeps its default settings, in your home folder at ~/.codex/config.toml. Options you would otherwise type every time — model, reasoning effort, approval policy, sandbox mode, MCP servers — are written here once. It uses the TOML format: key = value lines and [section] headings.

Learn more

Profile

A named set of Codex settings you pick with -p

A Codex profile is a named bundle of settings for one kind of work — for example a read-only "review" profile with a strict sandbox. Your defaults stay in config.toml, and codex -p <name> switches to the profile's settings for that run. It saves typing the same options again and again.

Learn more

codex cloud

Running Codex tasks in OpenAI's cloud and applying the results locally

codex cloud hands a task to Codex running in OpenAI's cloud environment instead of on your computer. Because your machine is free, you can run several tasks at once and pick only the finished results you want. codex apply copies a cloud task's changes into your local repository, where you review them like any other diff.

Learn more

Streamable HTTP

The way a remote MCP server talks over HTTP

MCP servers connect in two main ways. A local server runs on your computer and talks through standard input and output (stdio). A remote server runs elsewhere and talks over HTTP; the current standard way is called streamable HTTP, where the server can send a reply all at once or stream it in parts. You add one by giving its URL.

Learn more

Cross-review

Having a different AI or person check one agent's finished work

Cross-review means one agent does the work and a different one — another AI such as codex review, a sub-agent, or a person — checks it. A second checker with different blind spots catches mistakes the first one keeps repeating, including its own claim that "everything is done". It is a habit for agent work, not a statistics method like cross-validation.

Learn more

Pretrained weights

The numbers of a model someone else has already trained

Pretrained weights are the learned numbers of a model that someone has already trained, published as a file you can download. Starting from them saves the huge cost of training from scratch, and fine-tuning adapts them to your job. The SONUB XSLM course deliberately uses none: you write the code and train every number yourself, so you see where they come from.

Learn more Learn more about weights and parameters

Progressive disclosure

Reading a little first and more only when needed

Agents load skills by progressive disclosure, in three steps: ① at the start, only each skill's name and description; ② when a task matches, the whole SKILL.md; ③ only if needed, the extra scripts and reference files in its folder. This way you can install many skills without filling the context window.

Learn more

Research preview

An early, unfinished release of a feature, opened for trying out

A research preview is an early release of a new feature, opened before it is finished so people can try it and send feedback. It may change, have limits or be removed later, so do not rely on it for important work yet. Anthropic uses the label for features such as Claude Code channels.

Cursor

An AI code editor built on VS Code

Cursor is a code editor with AI built in, made by the company Anysphere and based on VS Code, so its look and extensions feel familiar. It suggests code as you type, answers questions about the project, and has an agent mode that changes several files at once. It also reads agent skills and AGENTS.md. (Not the blinking text cursor.)

Learn more

Goose

An open-source AI agent first released by Block

Goose is an open-source AI agent, first released by the payments company Block, that runs on your computer as a desktop app or in the terminal. It can use models from many providers and connects to tools through MCP. It also reads agent skills.

Learn more

Kiro

An AI coding editor from AWS that works from written specs

Kiro is an AI coding editor from AWS (Amazon Web Services). Besides chat and an agent that edits code, it encourages writing a spec — requirements, design and a task list — before the agent starts building. It also reads agent skills.

Learn more

Junie

JetBrains' AI coding agent

Junie is the AI coding agent from JetBrains, the company behind code editors such as IntelliJ IDEA, PyCharm and PhpStorm. It plans a task, changes files and runs tests inside those editors. It also reads agent skills.

Learn more

Kimi

Moonshot AI's AI models, also used in a terminal coding tool

Kimi is the name of the AI models and chat app from the Chinese company Moonshot AI. Some Kimi models are released as open weights. Moonshot AI also offers a command-line coding agent, so Kimi appears in lists of AI tools you can run in a terminal.

Learn more Learn more about weights and parameters

Amp

An AI coding agent that started at Sourcegraph

Amp is an AI coding agent that started at Sourcegraph, the code search company. It runs in the terminal and in code editors, reads the project, changes files and runs commands like Claude Code or Codex. It also reads agent skills.

Learn more

OpenHands

An open-source AI agent for software development

OpenHands (formerly OpenDevin) is an open-source platform for AI software-development agents. Its agents write code, run commands and browse the web inside a sandbox, and you can run it on your own computer or server. It also reads agent skills.

Learn more

Roo Code

An open-source AI coding agent extension for VS Code

Roo Code is an open-source extension that adds an AI coding agent to VS Code. It reads and changes files and runs terminal commands after you approve them, and you choose which model provider it uses. It also reads agent skills.

Learn more

Laravel Boost

A Laravel package that helps AI agents work on Laravel projects

Laravel Boost is an official package from the Laravel team for AI coding agents. Installed in a Laravel project, it gives the agent an MCP server with tools to inspect the app (routes, database schema, logs), Laravel-specific guidelines, and searchable documentation for the package versions the project uses. It also works with agent skills.

Learn more

Automatic differentiation

The library works out the gradients for you

Training a neural network needs the gradient of the loss with respect to every weight. Automatic differentiation records each calculation as it runs, then walks that record backwards with the chain rule to compute all the gradients exactly. PyTorch calls this feature autograd, so you only write the forward calculation.

Learn more Learn more about weights and parameters

Bias term

A number added to a neuron's sum, learned like a weight

A neuron multiplies each input by a weight, adds them up and then adds one more number, the bias. The bias lets the neuron give a non-zero answer even when every input is zero, and shifts how easily it reacts. Biases are parameters too, so training adjusts them together with the weights.

Learn more Learn more about weights and parameters

Accuracy (model)

The share of all examples the model got right

Accuracy is the number of correct predictions divided by the total number of examples. It is easy to read but can mislead when one answer is far more common: if 99 of 100 emails are normal, a model that always says "normal" scores 99%. That is why precision and recall are checked as well.

Agent Skills

The open standard for packaging a skill as a SKILL.md folder

Agent Skills is the open format, kept at agentskills.io, that says how a skill is laid out: a folder with a SKILL.md file whose front matter gives a name and a description, plus optional scripts and reference files. Because it is shared, the same skill folder can be used by Claude Code, Codex and other coding agents. The standard only fixes the format; it does not check that a skill is safe.

Learn more

Marketplace

A list of plugins you can add and install in Claude Code

A plugin marketplace is a repository that lists plugins, bundles of skills, sub-agents, hooks and MCP servers. After you add a marketplace, you can install any plugin from it with one command, and a whole team can share and update the same tools. Only add marketplaces you trust, because plugins can run code on your computer.

Learn more

Stop hook

A script that runs when the agent is about to stop

A Stop hook is a hook that Claude Code runs each time the agent finishes its turn and is about to stop. The script can check the work and block the stop, sending the agent back to continue. Ralph Loop is built on this: the hook catches the stop and feeds the same prompt in again until the completion promise appears or the limit is reached.

Learn more

Claude Desktop

Anthropic's Claude app installed on a computer

Claude Desktop is the Claude app for macOS and Windows. Besides chatting, it can connect to MCP servers on your computer, so Claude can use local tools and files you allow, and it can run Claude Code and Cowork tasks without opening a terminal. In MCP terms, it is a host.

Learn more

Claude Agent SDK

A library for building your own agents on Claude Code's harness

The Claude Agent SDK is the harness that runs Claude Code — the agent loop, tools, permissions and context management — offered as a library for Python and TypeScript. With it you can build your own agent that reads files, runs commands and calls tools, without writing that loop yourself. Its old name was the Claude Code SDK.

Adaptive thinking

The model decides at each step whether to think first, and how much

With adaptive thinking, the model itself decides at each step whether to think before answering and for how long: quick for easy steps, longer for hard ones. Instead of setting a fixed number of thinking tokens, you steer the overall amount with the effort level — higher means more thinking and deeper checks, lower means faster and cheaper. Only some models support it.

Thinking tokens

Tokens a model spends reasoning before it writes the answer

Thinking tokens are the tokens a reasoning model writes while working through a problem before giving its answer. They are billed and take up context like any other tokens. The thinking budget is the most thinking tokens allowed; in Claude Code you raise or lower thinking with the effort level, and on models with a fixed budget the MAX_THINKING_TOKENS setting caps it.

bypassPermissions

The Claude Code permission mode that turns off every confirmation

bypassPermissions is a permission mode in which Claude Code edits files and runs commands without asking at all; it is what the --dangerously-skip-permissions flag starts. Because nothing stops a wrong or harmful command, use it only in a container or virtual machine with no internet access and nothing you would mind losing.

Learn more

Memory file

An instruction file Claude Code loads at the start of every session

In Claude Code, "memory" means instruction files it reads at the start of every session — CLAUDE.md files (or AGENTS.md), and the notes of auto memory. They are loaded into the context before you ask anything, so they take up part of the context window from the first message; keep them short. This memory is text files on disk, not the computer's RAM.

Learn more

ultrathink

A word you add to a request to make Claude think harder for that turn

Putting ultrathink in a request tells Claude Code to think more deeply for that one turn, without changing the model or the effort level for the rest of the session. It is handy for a single hard step, such as a tricky bug or a design decision. More thinking takes longer and uses more tokens.

Learn more

Claude in Chrome

A Chrome extension that lets Claude open, click and check pages in your browser

Claude in Chrome is a browser extension. Connected to Claude Code, it lets Claude open pages in your own Chrome, click, type and read console errors, so after changing code it can check the result on screen itself. It works in Chrome, Edge and other Chromium browsers, signed in with the same claude.ai account.

Learn more

PreToolUse

The hook that runs just before a tool is used, and can block it

PreToolUse is a hook event that fires right before the agent uses a tool — before a file edit, before a shell command. Your hook command sees what is about to happen and can stop it: if it exits with code 2, the action is blocked and the message written to stderr is passed back to the agent. It is used to block dangerous commands or edits to secret files. Both Claude Code and Codex have it.

Learn more

PostToolUse

The hook that runs right after a tool has been used

PostToolUse is a hook event that fires right after the agent uses a tool, for example after it edits a file. It cannot undo the action, but it can follow it up — a common use is running a formatter such as Prettier on every file the agent changes. Both Claude Code and Codex have it.

Learn more

matcher

The part of a hook that says which tools it applies to

A hook's matcher chooses which tools the hook runs for. It is a tool name or a pattern: Bash for shell commands, Edit|Write for file changes. Without a matcher the hook would run for every tool, which is slow and can block things you did not mean to.

Learn more

/clear

Start a fresh conversation in Claude Code

Typing /clear empties the conversation so the next request starts with a clean context window. Use it when you move on to an unrelated task: old messages no longer fill the window or pull the work in the wrong direction. The previous session is saved, and /resume opens it again.

Learn more

Esc

The key that stops Claude Code in the middle of its work

Pressing Esc while Claude Code is working stops the current step at once, and the conversation stays, so you can say what was wrong and continue. Pressing Esc twice (or typing /rewind) opens the checkpoint list, where you can go back to an earlier point of the conversation and the code. Stopping early is cheaper than letting a wrong plan run to the end.

Learn more

claude mcp add

Register an MCP server with Claude Code from the terminal

claude mcp add gives Claude Code a new MCP server, and with it the tools that server provides. A remote server is added with --transport http and its address; a server that runs on your computer is added with -- and the command that starts it. claude mcp list shows the registered servers and claude mcp remove deletes one.

Learn more

--scope (MCP)

The option that decides where an added MCP server is saved and who can use it

claude mcp add saves a server in one of three scopes. local, the default, keeps it for you in this project only (in ~/.claude.json); project writes it to .mcp.json at the top of the project so the team gets it through git, with an approval on first use; user makes it available to you in every project. This scope is not the same as a variable's scope in the shell course.

Learn more

Shift+Tab

The shortcut that switches Claude Code's permission mode

In the Claude Code terminal, Shift+Tab cycles through the permission modes: default asks before each edit or command, acceptEdits edits files without asking, and plan only reads and shows a plan before changing anything. Switching to plan mode before a big change lets you read and fix the plan first. When a mode other than default is on, its name is shown under the input box. Since v2.1.283 a terminal session starts in auto mode, so the first press goes to default and the order is auto → default → acceptEdits → plan.

Learn more

Anthropic

The AI company that makes Claude

Anthropic is an AI research company founded in 2021. It builds the Claude family of language models and tools such as Claude Code, and publishes research on making AI safe.

OpenAI

The AI company that makes ChatGPT and Codex

OpenAI is an AI research company founded in 2015. It builds the GPT family of models, the ChatGPT chat service and the Codex coding agent.

Learn more about GPT

Hook event

The moment a hook runs, such as SessionStart

A hook event names the moment at which a hook (your script) runs: when a session starts, when you send a prompt, before or after a tool runs, when Claude stops. You choose the event in the settings file and the command that runs at that moment.

Learn more

Skill setting field

A Claude Code setting in a SKILL.md header, such as allowed-tools

Besides name and description, Claude Code reads extra fields in the frontmatter of SKILL.md: which tools the skill may use without asking, whether only you can start it, and whether it shows in the / menu. Other agents that read Agent Skills may ignore these fields.

Learn more

XChat

The chatbot you build in the XSLM course

XChat is the small chat program you write in the XSLM course. It sends your question to the Runner, which runs the GPT you trained yourself, and shows the answer — no ready-made model or outside AI API is used.

Learn more Learn more about GPT

--output-format

Choose how claude -p prints its result

When you run Claude Code without the chat screen (`claude -p`), this option decides what it prints. `text`, the default, prints only the answer; `json` prints one JSON object with the answer (`result`), the session ID and the estimated cost; `stream-json` prints one JSON line for each event while the run is going. Scripts usually pick `json` so another program can read the fields.

Learn more

AGENTS.override.md

Codex file that replaces AGENTS.md in the same folder

Codex looks for `AGENTS.override.md` before `AGENTS.md` in each folder and reads only one file per folder, so when the override file exists, the `AGENTS.md` next to it is skipped. It is handy for trying different instructions for a while without editing or deleting the shared file; remove it and the normal rules come back. Claude Code does not read this file.

Learn more

skill-creator

A skill that helps you make a new agent skill

skill-creator is a ready-made skill that walks you through building a new skill (a folder with a `SKILL.md`): it asks what the skill should do and when it should be used, then writes the files. Codex ships with it built in, and you start it by typing `$skill-creator`. Anthropic's public skills repository has a skill-creator too, which also helps test a skill with sample prompts.

Learn more

approval policy

Codex's rule for when to ask you before running a command

The approval policy decides when Codex stops and asks you before it runs a command. You set it with `--ask-for-approval` (`-a`): `on-request` runs what the sandbox allows without asking and asks about the rest, while `never` never asks but still stays inside the sandbox. Auto mode, which Codex suggests for version-controlled folders, is `workspace-write` plus `on-request`; the older value `untrusted` is no longer supported.

Learn more

evals.json

A file of test prompts and expected results for a skill

evals.json lists test cases for a skill: for each one, a request a user might type and what a good result should look like. You run the same requests with the skill and without it, then compare, to see whether the skill really helps. There is no single required format; Anthropic's skill-creator keeps it at `evals/evals.json` with the fields below.

Learn more

NVIDIA

The US company best known for graphics chips (GPUs) used in AI

NVIDIA is an American company that designs and sells graphics cards (GPUs). GPUs were first made to draw game graphics fast, but they also handle the huge amount of number crunching that training and running AI models needs, so most AI data centers use them. NVIDIA also makes CUDA, a set of tools for writing programs that run on its GPUs.

Learn more

Google DeepMind

Google's AI research lab, maker of AlphaGo and Gemini

Google DeepMind is the AI research organization inside Google. It built AlphaGo, the Go-playing AI that beat top player Lee Sedol in 2016, and it develops Google's Gemini models. It is a research lab, not a separate app — you meet its work inside Google products such as Gemini.

Learn more

NIST

The US standards agency that publishes AI risk guidelines

NIST (National Institute of Standards and Technology) is a US government agency that sets measurements and technical standards. For AI it publishes the AI Risk Management Framework (AI RMF), a guide to finding and reducing the risks of an AI system, and a Generative AI Profile that applies it to tools like chatbots. These are voluntary guidelines, not laws.

Learn more

Gartner

A US research and advisory company known for IT trend reports

Gartner is an American research firm that surveys companies and publishes reports and forecasts about information technology, such as its Hype Cycle charts. News articles often quote Gartner surveys of company leaders. Its figures describe the companies it surveyed, not everyone.

Learn more

Andrej Karpathy

An AI researcher known for nanoGPT and free courses on building language models

Andrej Karpathy is an AI researcher who was a founding member of OpenAI and led AI for Tesla Autopilot. He publishes small, readable projects such as nanoGPT, makemore and nanochat, and free video lectures that build a neural network from scratch. He also coined the phrase "vibe coding" in 2025.

Learn more Learn more about GPT

SONUB dictionary

Data

81 terms

Embedding

Turning meaning into numbers so it can be compared

An embedding turns a sentence into a list of numbers arranged so that similar meanings end up close together. That is how a search can find a passage about 'car repair' when you typed 'fixing my vehicle'. It matches meaning, not spelling.

Vector

A list of numbers that marks a position

A vector is just an ordered list of numbers, like the two numbers that pin a point on a map. AI uses lists that are hundreds of numbers long, so each one marks a spot in a space we cannot picture. Once meanings are points, 'similar' simply becomes 'nearby'.

Database

Organised storage that can be searched and updated safely

A database keeps an application's data in an organised form so it can be found quickly and changed without corruption, even when many people write at the same moment. Think of a spreadsheet that never loses a row when two people edit at once. Accounts, posts and scores on a site like this one all live in one.

Learn more

SQL

The language for asking a database questions

SQL is how you tell a database what you want: select these rows, add this one, change that field. It reads almost like clipped English, which makes it unusually approachable for a first computer language. It has been in use since the 1970s and is still the standard way to talk to most databases.

JSON

A plain-text format programs use to exchange data

JSON writes data as plain text with names and values, so two programs written in different languages can still understand each other. Almost every API answers in it. Because it is only text, you can open a JSON file and read it yourself, which makes it easy to check what a service actually sent you.

One-hot vector

A list of 0s with a single 1 marking which word it is

A one-hot vector is as long as the vocabulary and is all zeros except for a single 1 at the word's own position. It is the simplest way to turn a token ID into a vector a calculation can use. It only says which word it is: every pair of words is equally far apart, so it carries no meaning or similarity. Learned embeddings are the vectors that do.

Learn more

Tensor

A grid of numbers with any number of dimensions

A tensor is a container of numbers laid out in one or more directions. A single number is a scalar, a row of numbers is a vector, a table is a matrix, and stacks of tables are higher-dimensional tensors. A model's parameters are stored in tensors, and a GPU is built to multiply them fast. Parameters are counted by the numbers inside, not by the containers: a 2 × 3 matrix holds 6 parameters.

Learn more Learn more about weights and parameters

Bits and bytes

The smallest units of computer data: a 0/1, and a group of 8

A bit is a single 0 or 1, the smallest piece of data a computer stores. A byte is 8 bits and can hold 256 different values. File sizes and memory are counted in bytes — kilobytes, megabytes, gigabytes. This also explains AI model sizes: a parameter stored in 8 bits takes 1 byte, so 8 billion of them take about 8 GB.

Learn more Learn more about weights and parameters

CSV

A table saved as plain text, with commas between the columns

CSV (comma-separated values) stores a table as text: one line per row and a comma between the columns, often with a first line of column names. Spreadsheets open and save it, and shell tools read it well — cut -d, and awk -F, split each line at the commas. A value that itself contains a comma is wrapped in quotes, which these simple tools do not understand.

FP32

A 32-bit decimal number format — 4 bytes per number

FP32 stores one decimal (floating-point) number in 32 bits, which is 4 bytes. It is the usual format for training on a computer and keeps about seven significant digits. A model kept in FP32 is twice as large as the same model in FP16, so models are often shared or run in smaller formats.

Learn more Learn more about weights and parameters

INT8

An 8-bit whole-number format — 1 byte per number

INT8 stores a whole number from −128 to 127 in 8 bits, one byte. Quantized models keep their weights as INT8 and multiply them by a scale to get back numbers close to the originals. This makes the file about a quarter of FP32 and half of FP16, with a small loss of accuracy.

Learn more Learn more about weights and parameters

Scalar

A single number, as opposed to a list or table of numbers

A scalar is just one number, such as 0.7. A vector is a list of scalars and a matrix is a table of them. Model parameters are counted as scalars: a 2 × 3 matrix holds 6 scalars, so it is 6 parameters. That is why 8B means about 8 billion single numbers, not 8 billion vectors.

Learn more Learn more about weights and parameters

Dot product

Multiply two equal-length lists place by place and add it all up into one number

The dot product takes two lists of numbers of the same length, multiplies the numbers in the same place and adds the results into one number. [1, 2, 3] · [4, 5, 6] is 4 + 10 + 18 = 32. The more two vectors point the same way, the larger it gets. In attention, the dot product of a Query and a Key is the score for "how related are these?", and a linear layer is just the input dotted with each row of its weights.

Learn more Learn more about weights and parameters

Euclidean distance

The length of the straight line joining two points — shorter means more similar

Subtract the numbers in the same position of two vectors, square each difference, add them all up, then take the square root. The distance between [0, 0] and [0.3, 0.3] is √(0.3² + 0.3²) = 0.424. In embeddings, a shorter distance means a closer meaning, and a vector database uses this distance to find the closest items.

Learn more

Numeric precision

How many bits are used to store each number

Precision says how exactly each number is stored, usually by its number of bits: 32-bit, 16-bit, 8-bit, 4-bit. Fewer bits make a model smaller and often faster but round the numbers more coarsely, which can lower quality a little. Quantization is the act of moving a model to lower precision.

Learn more Learn more about weights and parameters

Atomic transaction

A change that happens completely or not at all

An atomic transaction is a group of changes that the database treats as one step: either every change is saved, or none of them is. If the server crashes halfway, the database rolls back to how it was before. Game wallets need this: when a player buys an item, taking the coins and giving the item must never happen only half way.

Learn more

Database dump

A file that holds a whole database's contents

A database dump is a file that copies everything in a database: the tables, their design and every row. You make one for backups or to move the data to another server, and you load it back to rebuild the same database. Because it is a plain file you own, a dump is also your way out if you stop using a service.

Indexing

Building a lookup list so a database finds rows fast

An index is an extra list the database keeps, sorted by one field, so it can jump straight to the rows it needs instead of reading every row. Indexing a field makes searches on it fast but makes each save a little slower and uses more space. A storage that indexes only some fields can search only by those fields.

Table

A database grid of rows and columns that holds one kind of record

A database keeps its data in tables. Each table holds one kind of thing, such as players or items; each column is one field (name, level) and each row is one record. Programs read and change tables with queries, and some systems let a client subscribe to a table and receive every changed row.

Query

A request that asks a database for data or changes it

A query is a request sent to a database: find these rows, count them, add one, change one. Most databases take queries written in SQL. How flexible queries can be depends on the storage: a full SQL database answers almost any question, while a simple key-value store can only look things up by key.

Key-value

Storing each value under a name (key) and finding it by that name

A key-value store saves data as pairs: a key, such as player:42, and a value, such as that player's saved game. You get a value back by asking for its key, which is very fast. The trade-off is that you cannot easily ask questions across many values, such as 'all players above level 10', the way SQL can.

Metadata

Data that describes other data

Metadata is information about the data rather than the data itself: a photo's date and camera, a file's size and owner, or a model file's layer names and number format. Programs read it to know how to use the main data. It takes some extra space, which is why a model file is a little bigger than its weights alone.

Learn more about weights and parameters

PostgreSQL

A widely used free, open-source SQL database

PostgreSQL, often called Postgres, is an open-source database that stores data in tables and answers SQL queries. It is known for keeping data safe with transactions and for features such as JSON columns. SONUB runs on PostgreSQL, and game servers such as Nakama use it to store player data. In Docker it usually runs as its own container named postgres.

Redis

A very fast key-value store that keeps data in memory

Redis keeps its data in the computer's memory (RAM) instead of mostly on disk, so reads and writes take well under a millisecond. Web apps use it as a cache, as a queue of background jobs and for counters or sessions. It can save to disk, but it is usually a helper next to the main database rather than the place for data you must never lose.

Storage engine

The part of a server that saves and reads back data

A storage engine is the part of a database or game server that decides how data is written to disk and found again. In Nakama it stores players' saved data as versioned JSON documents and checks who owns each one and who may read it. Its design sets what you can ask for: Nakama's storage is mostly key-value, not free SQL.

Learn more

Schema

A plan of the shape data must have

A schema describes how data is shaped: in a database, which tables exist and what columns and types each has; for a tool or API, which inputs it takes and of what type. Programs check data against the schema and reject what does not fit. An AI tool's input schema is what tells the model which arguments to send.

JSON Schema

A standard way to write the shape JSON must have

JSON Schema is a JSON document that describes what another JSON document must look like: which keys it needs, what type each value is and which values are allowed. Tools use it to check data automatically. AI tools such as codex exec --output-schema use it to make the model's final answer come back in exactly that shape.

JSONL

A text format with one JSON object on each line

JSONL (JSON Lines) writes one complete JSON value per line instead of one big JSON document. A program can read and handle each line as soon as it arrives, which suits logs and progress streams. codex exec --json prints its progress this way: each line is one event.

TOML

A settings-file format written as key = value lines

TOML is a plain-text format for settings files. Each line is key = value, and [sections] in square brackets group related settings. It is easier for people to read and edit than JSON. Codex keeps its settings in ~/.codex/config.toml and its custom sub-agents in .toml files.

base64

A way to write any file as plain letters and digits

base64 turns raw bytes, such as an image, into text made of 64 safe characters (A–Z, a–z, 0–9, + and /). That lets a file travel inside places that accept only text, such as JSON sent to an AI API. The text is about one third larger than the original file, and anyone can turn it back, so it is not encryption.

zip

A file format that packs many files into one smaller file

A zip file bundles many files and folders into one file and usually makes it smaller. Game platforms such as Cadeplay take a web game as one zip. What matters is the layout inside: index.html must sit at the top (or one level down). Zipping the folder itself instead of its contents adds an extra level, the most common mistake.

Learn more

Archive file

One file that bundles many files, usually compressed

An archive file packs many files and folders into one file, usually also making it smaller. Common kinds are .zip and .tar.gz. A skill is shared as an archive: npx skills add downloads one archive per skill and unpacks it. This is different from Claude Code's compaction, which shortens a conversation, not files.

digest

A fingerprint value calculated from a file's contents

A digest is a short value, such as a sha256, calculated from every byte of a file. The same file always gives the same digest, and changing even one byte gives a completely different one. So comparing digests tells you whether a file has changed without comparing the whole file. Skills use the digest of their archive as a version: a new digest means a new version.

sha256

A common way to calculate a file's fingerprint (hash)

SHA-256 is a hash function: it turns any input into a 256-bit value, usually written as 64 hexadecimal characters. It is practically impossible to find two different files with the same value, so it is used to check downloads, to name versions and in security. You cannot rebuild the file from the hash; it only identifies it.

GIF

An image format that can hold a short looping animation

GIF is an old image format that can store several frames and play them in a loop, so it is used for short silent clips such as screen recordings. Each frame can use at most 256 colours, which is why photos look grainy in GIF. AI browser tools can record what they did as a GIF to attach to a report.

ID

A unique name or number that tells one thing from all others

An ID (identifier) is a label that belongs to exactly one thing, so a program can point at it without confusion: a user number, a file ID, a bundle ID, a key ID. In language models each token in the vocabulary has a number, its token ID, and the model works with these numbers, not with letters.

KB · MB · GB

Units for the size of files and memory

File and memory sizes are counted in bytes, and big numbers get units: a kilobyte (KB) is 1,000 bytes, a megabyte (MB) a million and a gigabyte (GB) a billion. KiB, MiB and GiB count in powers of 2 instead: 1 KiB is 1,024 bytes and 1 MiB is 1,048,576. Many programs write MB when they mean MiB, so small differences are normal.

Learn more about weights and parameters

Millisecond (ms)

One thousandth of a second

A millisecond (ms) is 1/1000 of a second. Screens and programs measure short waits in ms: 400 ms is 0.4 seconds, a little less than half a second. People notice delays above roughly 100 ms, so web pages try to answer faster than that.

Pixel (px)

One tiny dot of colour; a screen is a grid of them

A pixel is the smallest dot of a screen or picture, holding one colour. Millions of them side by side make an image. In web design px is a CSS unit: 640 px is a width, but on high-resolution phones one CSS pixel can cover several real screen dots. In games, speeds are often given in pixels per second.

NumPy

The Python library for fast calculation on grids of numbers

NumPy adds arrays to Python: grids of numbers that can be added, multiplied or compared all at once. Its inner loops are written in C, so it is many times faster than a Python loop over a list. Almost every AI and data tool in Python, such as scikit-learn and PyTorch, is built on the same idea or works with NumPy arrays directly.

Learn more

Array (NumPy)

A grid of numbers of one type that NumPy calculates on at once

A NumPy array holds numbers in a grid: a row (1-D), a table (2-D) or more dimensions. All its values have the same type, which lets NumPy work on the whole array in one step: a * 2 doubles every number, and a @ b multiplies two matrices. It looks like a Python list but behaves differently: + adds numbers instead of joining lists.

Learn more

shape

How many items an array has along each direction

An array's shape lists its size in each dimension: (4, 3) means 4 rows and 3 columns. Shapes decide which operations work. For matrix multiplication the inner numbers must match: (4, 3) @ (3, 2) gives (4, 2), while (4, 3) @ (2, 3) fails with a ValueError. Printing .shape is the first thing to do when NumPy complains.

Learn more

Broadcasting

NumPy stretching a smaller array to fit a bigger one

Broadcasting is how NumPy combines arrays of different shapes: it repeats the smaller one along the missing directions without copying memory. Adding 1 to an array adds 1 to every number; adding a row of 3 values to a (4, 3) table adds it to each of the 4 rows. If the shapes cannot be lined up, you get an error instead.

Learn more

Vectorised maths

Calculating on a whole array at once instead of with a loop

Vectorised maths means writing one operation for the whole array, such as a * b, instead of a Python for loop over each number. NumPy then runs the loop inside fast compiled code, often tens of times faster. Neural networks are built this way: a layer is one matrix multiplication, not millions of separate multiplications.

Learn more

Data leakage

Test information sneaking into training by mistake

Data leakage happens when something from the test data reaches the model during training, so the test score looks better than the model really is. A common cause is preprocessing on all the data before splitting it: the scaler then learns averages that include the test rows. Split first, then fit every preprocessing step on the training part only.

Learn more

Scaling

Putting features on similar number ranges before training

Scaling changes each feature so its numbers fall in a similar range, for example 0 to 1, or an average of 0 with a spread of 1. Without it, a feature measured in thousands can drown out one measured in single digits for models that compare distances. The scaler must learn its numbers from the training data only, or you get data leakage.

Learn more

Iris dataset

A classic practice dataset: 150 iris flowers, 3 kinds

The iris dataset holds measurements of 150 iris flowers, 50 from each of three species. Each flower has four features: sepal length and width, petal length and width. The task is to guess the species from those numbers. It is small, clean and built into scikit-learn, so it is the usual first dataset for learning classification.

Learn more

Preprocessing

Cleaning and reshaping data before a model uses it

Preprocessing is everything done to raw data before training or inference: removing broken rows, filling gaps, scaling numbers, turning text into tokens or sound into frequencies with an FFT. Models only learn well from data in the form they expect. Whatever preprocessing is used in training must be applied the same way to new data later.

Data

Facts a computer stores and works with: numbers, text, images, sound

Data is any information a computer can store and process: numbers in a table, text, photos, sound recordings, clicks on a website. Programs read data, change it and produce new data. AI depends on it twice: a model learns its weights from training data, and then it works on the data you give it.

Learn more about weights and parameters

Data analysis

Examining data to find useful facts and patterns

Data analysis means cleaning, summarising and charting data to answer questions: which product sells best, when users leave, whether a change helped. It is often done in Python with NumPy and pandas, in spreadsheets, or with SQL. AI chat tools can now do simple analysis when you upload a table and ask in plain words.

Structured data

Data in a fixed frame of rows and columns

Structured data fits a fixed frame: every row has the same columns, and each column holds one kind of value, as in a spreadsheet or a database table. That makes it easy to sort, filter and count. Classic machine learning and SQL work best on it, while text and images need more preprocessing first.

Unstructured data

Data with no fixed frame: text, photos, sound, video

Unstructured data has no fixed rows and columns: emails, documents, photos, recordings, videos. Most of the world's data is like this. It is hard to count or sort directly, so it is first turned into numbers, for example tokens or embeddings, and language and image models are built to work on exactly this kind of data.

Vector database

A database that stores embeddings and finds the closest ones

A vector database stores embedding vectors, lists of numbers that capture the meaning of a text or image, and quickly finds the vectors closest to a query. In RAG, each document chunk is stored as a vector; the question is turned into a vector too, and the nearest chunks are handed to the model. With only a few documents a simple in-memory search can be enough.

Excel

Microsoft's spreadsheet program for tables and calculations

Excel is Microsoft's spreadsheet program: a grid of cells where you type numbers and text and write formulas that calculate from other cells. It is the most common tool for business tables, budgets and simple charts. AI tools can read an uploaded Excel file, answer questions about it and write the formulas for you.

Formula

A calculation written into a spreadsheet cell

In a spreadsheet, a formula is an instruction that starts with = and calculates a value from numbers or other cells, such as =SUM(B2:B13) or =B2*1.1. When the source cells change, the result updates by itself. Asking an AI for the formula, not just the answer, lets you reuse and check the calculation.

Sound signal

Sound recorded as values that change over time

A sound signal is the record of how air pressure at a microphone changes over time, stored as a long list of numbers. Drawn as a graph it is a waveform. Sound AI rarely uses it as it is: preprocessing such as the FFT splits it into frequencies first. This is a different 'signal' from the ones a shell sends to stop a program.

Waveform

A graph of how a sound vibrates over time

A waveform is a sound drawn as a line: time runs left to right, and the line goes up and down with the vibration. Taller waves are louder; tightly packed waves are higher in pitch. Audio editors show recordings this way. Music AI can work on waveforms directly or on MIDI notes, which describe music without the sound itself.

Frequency

How many times something vibrates per second

Frequency is the number of vibrations per second, measured in hertz (Hz). For sound it is the pitch: higher frequency sounds higher. A note A4 is 440 Hz, and people hear roughly 20 to 20,000 Hz. Real sounds mix many frequencies at once; the FFT measures how strong each one is.

Hertz (Hz)

The unit for 'times per second'

Hertz (Hz) counts how many times something happens in one second. It measures sound pitch (A4 is 440 Hz), how often sound is sampled (a CD uses 44,100 Hz) and how often a screen redraws (a 120 Hz screen refreshes 120 times a second). 1 kHz is 1,000 Hz.

FFT

A fast algorithm that splits a sound into its frequencies

The FFT (Fast Fourier Transform) is an algorithm that computes the Fourier transform far faster than doing it step by step. It takes a short piece of a signal and reports how strong each frequency is in it. Sound AI uses it in preprocessing almost every time, for example to build a spectrogram from a recording.

Fourier transform

Math that breaks a signal into the frequencies it contains

The Fourier transform rewrites a signal that changes over time as a list of frequencies and how strong each is. Any sound, however complex, can be seen as many simple waves added together, and the transform finds them. Computers use the FFT, a fast way to calculate it.

IEEE 754

The standard for storing numbers with decimals in bits

IEEE 754 is the international standard for floating-point numbers. It stores a number in three parts: a sign bit, an exponent that sets the size, and a significand (mantissa) that holds the digits. A 32-bit float uses 1 + 8 + 23 bits. Because only so many digits fit, 0.1 + 0.2 is not exactly 0.3 on a computer.

Mantissa

The part of a stored number that holds its digits

In IEEE 754, a number is split into sign, exponent and mantissa (also called the significand). The mantissa holds the significant digits and the exponent says where the point goes. More mantissa bits mean more precise numbers: 32-bit floats have 23, 16-bit floats only 10, which is why training in 16 bits saves memory but loses precision.

MIDI

A standard that records music as notes, not sound

MIDI (Musical Instrument Digital Interface) is a 1983 standard that lets electronic instruments and computers exchange performance information: which note, when it starts, how long and how hard. It contains no sound, so a MIDI file is tiny and can be played on any instrument sound. Music AI sometimes learns from MIDI because the structure of the music is easy to read.

Sampling rate

How many times per second a sound is measured

To record sound, a computer measures the signal many times a second and stores each measurement as a number. The sampling rate is how many measurements per second, in hertz: a CD uses 44,100 Hz. Higher rates capture higher sounds but make bigger files. Speech models often use 16,000 Hz, because speech needs less. This is not the 'sampling' a language model uses to pick a token.

Nyquist frequency

The highest sound a sampling rate can capture: half of it

The Nyquist frequency is half the sampling rate, and it is the highest frequency a recording can hold correctly. A CD samples at 44,100 Hz, so it can record up to 22,050 Hz, just above the roughly 20,000 Hz people can hear. Sounds above the limit do not just disappear; they fold back as false lower tones unless they are filtered out first.

Octave

The step between two notes where frequency doubles

An octave is the distance between a note and the next note with the same name: going up an octave doubles the frequency, going down halves it. A4 is 440 Hz, so A5 is 880 Hz and A3 is 220 Hz. The two notes sound like the same note, higher or lower, which is why they share a name.

Spectrogram

A picture of which frequencies are loud at each moment

A spectrogram shows how the strength of each frequency changes over time: the horizontal axis is time, the vertical axis is frequency and brightness is strength. It is built by running an FFT on many short slices of a recording. Because it turns sound into an image, sound AI models often take spectrograms as their input.

Logarithm (log)

The math function that turns multiplying into adding

The logarithm answers 'what power gives this number?': log₁₀(1000) = 3. It turns multiplication into addition and squeezes huge ranges into small ones. AI uses it in the loss: taking the log of the probability given to the right answer makes a small probability give a big penalty. This is a different 'log' from a log file that records events.

NaN

"Not a Number": a sign that a calculation went wrong

NaN is a special floating-point value meaning "not a number". It comes from things like 0/0 in JavaScript or adding undefined to a number, and once it appears it spreads through every calculation that uses it. In training, a loss that turns into nan usually means the learning rate is too high. NaN is not even equal to itself.

Floating point

How computers store decimals as close approximations in bits

Computers keep real numbers in a fixed number of bits, following the IEEE 754 standard, so many decimals are stored only approximately. 0.1 + 0.2 gives 0.30000000000000004 in Python. These rounding errors are tiny but can pile up over many steps. For money, use integers (cents) or a decimal type instead.

YAML

A text format that writes settings with indentation

YAML is a plain text format for settings, written as name: value lines, with indentation showing what belongs inside what. Docker Compose files, GitHub Actions, Flutter's pubspec.yaml and the front matter at the top of SKILL.md all use it. Indent with spaces, never tabs; one wrong indent changes the meaning or breaks the file.

UUID

A unique 128-bit ID that practically never repeats

A UUID (universally unique identifier) is a 128-bit number written as 36 characters, like 3f2a1bc4-…. It can be created anywhere without asking a central list, and two random ones practically never collide. Linux gives each file system a UUID; using it in /etc/fstab is safer than names like sda1, which can change when you add a disk.

Learn more

UTF-8

The standard way to store the letters of every language as bytes

Computers store text as numbers. UTF-8 is the encoding that gives every character, from English letters and Hangul to Arabic and emoji, its own sequence of 1 to 4 bytes. An English letter takes 1 byte and a Hangul syllable takes 3. Almost every web page and code file today is saved in UTF-8.

Learn more

Endianness

The order in which a number's bytes are stored

A number bigger than one byte is stored as several bytes, and endianness is their order. Little-endian puts the smallest byte first; big-endian puts the biggest first. Programs that read and write the same file must agree on the order, or the numbers come out wrong — safetensors uses little-endian.

Learn more

PDF

A document file that looks the same on every device

PDF (Portable Document Format) keeps a document's pages, letters and pictures exactly as laid out, whichever computer or phone opens it. That makes it a common format for receipts and records. SONUB exports booking evidence as a PDF.

JPG (JPEG)

The common photo format that saves space by dropping detail

JPG, also written JPEG, is the most common format for photos. It makes files small by throwing away detail the eye barely notices, so saving the same picture again and again slowly lowers its quality. It cannot have a transparent background — PNG can.

PNG

An image format that keeps every pixel exactly

PNG stores every pixel exactly as it was (lossless) and can have a transparent background, so it suits screenshots, logos and text. A photo saved as PNG is usually much larger than the same photo as JPG.

WebP

A web image format that usually makes smaller files

WebP is an image format made by Google for the web. It can shrink pictures like JPG or keep every pixel like PNG, can have a transparent background, and usually makes smaller files than either. Current browsers open it, but some older programs cannot.

MP4

The most common video file format

MP4 is the most common video file format: one file holds compressed picture and sound that almost every phone, computer and browser can play. A SONUB teacher can upload the introduction video as an MP4 of up to 50 MB, or give a YouTube address instead.

Country code

A two-letter code for a country, such as KR or PH

The international standard ISO 3166-1 gives every country a two-letter code: KR for Korea, PH for the Philippines, US for the United States. Writing a country this way means every country is spelled the same in every language. SONUB asks for it as the country of the document in identity verification.

SONUB dictionary

Development

299 terms

API

A fixed doorway one program uses to call another

An API is an agreed doorway between programs: send a request in this exact shape and you get an answer in that exact shape. You never see the other program's inner workings, only the doorway. Using an AI through an API means your own app can ask the model a question instead of a person typing it.

API key

A secret string that identifies and bills you — never share it

An API key is a long secret string that tells the service who is calling, and whose account to charge. Treat it like a bank card number: never paste it into a chat, a screenshot, or a public repository. If it leaks, delete it in the provider's dashboard and issue a new one immediately.

Git

The tool that records every version of your files

Git keeps a full history of your project, so you can see what changed, when, and go back to any earlier state. It also lets several people work on the same files without overwriting each other. Git runs on your own machine; GitHub is a website that stores copies of Git projects, which is why the two names are often confused.

Learn more

Repository

One project folder together with its whole history

A repository, usually shortened to repo, is a project folder that Git is watching, plus the record of every change ever made in it. Cloning a repository copies both the files and that history onto your machine. When someone says the code is on GitHub, they mean there is a repository there you can copy.

Learn more

Commit

One saved point in the history, with a note about why

A commit is a snapshot of your project at one moment, saved with a short message explaining what you changed and why. Because each commit is kept forever, you can always return to one. Small commits with honest messages are what make a history worth having; one giant commit called update tells nobody anything.

Learn more

Branch

A side track where you can work without disturbing the main one

A branch lets you split off from the main line of work, try something, and leave the original untouched until you are happy with it. If the experiment fails you simply throw the branch away; if it works you merge it back in. This is why teams can build several features at once without stepping on each other.

Learn more

Command line (CLI)

Working by typing commands instead of clicking

A command-line interface is a program you drive by typing instructions, one line at a time, instead of clicking through menus. It looks bare, but it is precise and repeatable: the exact line you typed can be saved, shared, and run again tomorrow. Most developer tools, including Git and the AI coding assistants, offer one.

Learn more

Terminal

The black window where you type commands

The terminal is the application that gives you a place to type commands and shows what they print back. On a Mac it is called Terminal, on Windows it is Windows Terminal or PowerShell. Nothing you type there is dangerous by itself, and you can close the window at any time; the fear it inspires in beginners is out of all proportion to the risk.

Learn more

Algorithm

A recipe: fixed steps that always reach the same result

An algorithm is a finite list of steps that turns an input into an output, like a cooking recipe. Sorting names alphabetically or finding the shortest route are algorithms. The word sounds forbidding, but you already follow algorithms every day; a computer simply follows them without getting bored or skipping a line.

Library

Ready-made code someone else wrote that you can just use

A library is a bundle of code written and tested by other people that you pull into your project so you do not have to solve a solved problem again. Reading a date, drawing a chart, sending an email: someone has already done it well. Choosing good libraries is a real skill, since your program inherits both their strengths and their bugs.

Open source

Software whose code anyone may read, use and change

Open source software publishes its source code under a licence that lets anyone read it, run it, and modify it. That openness is why problems get found by strangers and why you are never locked in to one company. Open does not always mean free of obligations: each licence sets its own conditions, so it is worth reading which one applies.

Debugging

Tracking down why a program misbehaves, and fixing it

Debugging is the work of finding out why a program does something other than what you intended, and then correcting it. Most of it is not clever fixing but patient narrowing down: what exactly happens, what did you expect, where do the two first diverge. Beginners often assume debugging means they failed; in reality it is the larger half of programming.

Error message

The text a program shows when something went wrong

An error message is the text a program or browser shows when it cannot do what the code asks. It usually names what went wrong and where — often a line number. It looks scary, but it is the most useful clue you have: read the first line, or paste it to an AI and ask what it means.

Learn more

Python

A beginner-friendly language widely used for AI

Python is a programming language known for code that reads almost like plain English. It is the most common language for data analysis and AI, and most AI libraries, such as PyTorch and NumPy, are used from Python. On this site you can run real Python right in your browser, with nothing to install.

Learn more

Program

A set of instructions a computer carries out in order

A program is a list of instructions that tells a computer what to do, step by step. Apps, games, and websites are all programs, and so is an AI chatbot. A computer does only what the program says, so when a program misbehaves, the cause lies in its instructions or in the input it was given.

Code

Instructions written in a programming language

Code is the text of a program, written in a programming language such as Python or JavaScript. People write it and the computer runs it. Code must follow the language's rules exactly, so one missing bracket can stop it from running. Writing code is called coding; AI tools can write code too, but a person still has to check it.

Code editor

A program for writing and editing code

A code editor is a program for writing and changing code files. It colours the different parts of the code, points out mistakes as you type, and often has a terminal built in. VS Code (Visual Studio Code) is a popular free one, and many AI coding tools are added to it as extensions.

Flowchart

A diagram that shows the steps of a task in order

A flowchart draws the steps of a task as boxes joined by arrows. A round box marks the start or end, a rectangle is something to do, and a diamond asks a yes-or-no question that splits the path. Drawing one before you build a program makes it clear what should happen, and in what order.

Learn more

Input and output

What goes into a program and what comes out

Input is what a program receives: keys you type, a mouse click, a file, or a question. Output is what it gives back: words on the screen, a sound, or a saved file. In between, the program processes the input. An AI chatbot follows the same pattern: your question is the input and its answer is the output.

Syntax

The exact rules for how code must be written

Syntax is the set of writing rules of a programming language: where brackets, colons, quotes, and spaces must go. A computer does not guess what you meant, so even one missing quote causes a syntax error and the code does not run at all. The error message usually points to the line, which is the first place to look.

Runtime

The program that actually runs your code or a model

A runtime is the program that actually runs something written elsewhere. Node.js runs JavaScript outside the browser, Pyodide runs Python inside the browser, and llama.cpp reads an AI model file and does its calculations. The word also means "while the program is running", so an error that only appears when you run the code is called a runtime error.

Framework

A ready-made skeleton that your code fills in

A framework is a large body of code that already decides how an app is organised; you write the pieces it calls at the right moment. A library is the other way round: your code calls it whenever you want. Web frameworks save a lot of work, but underneath they still read requests and write responses in plain HTTP, which is why this site shows that loop first.

Learn more

SDK

A kit of code and tools for building on one platform

SDK stands for software development kit. A platform hands it out so your program can use its features, such as cloud saves, leaderboards or sign-in, without writing them from scratch. It usually holds a library that calls the platform's API, plus documentation and examples. On this site it shows up with Cadeplay, which adds its SDK to your game for you.

Learn more

Build step

Turning source code into files ready to run or ship

To build is to turn the code you write into the finished files that will really be run — for example, squeezing a React project into plain HTML, CSS and JavaScript in a dist folder. A build tool does this step. The finished result is also called a build, so "a new build" means a new packaged version of a game or app. Build output is generated again each time, so it is kept out of Git.

Learn more

Game engine

Software that does the shared work of running a game

A game engine handles the work almost every game needs: drawing to the screen, reading input, playing sound, physics and loading images and sounds. You add your own game's rules and art on top. Godot, Unity, Unreal and Flame (built on Flutter) are well-known examples. Many engines can export one project to the web, phones and desktop computers.

Learn more

MVP

The smallest version that people can really use

MVP stands for minimum viable product. For a game it means a minimum playable game: small, but a stranger can pick it up and play from start to finish without help. It is not a demo or a sketch. Releasing an MVP early gives you honest feedback from real players, something months of working alone cannot.

Learn more

.env file

A file that keeps secrets out of your code

A .env file is a plain text file of NAME=value lines, such as tokens and passwords, kept in a project folder. The program reads each value by its name, so the secret itself never appears in the code. The file must be listed in .gitignore so it never enters the repository; if a secret was ever pushed, treat it as leaked and replace it.

CI (continuous integration)

Automatic tests that run on every code change

Continuous integration, or CI, means a server automatically builds the project and runs its tests every time someone sends code to a shared repository. If anything breaks, the team sees a red mark within minutes, before the change is merged. GitHub Actions is one widely used CI service.

Version control

Keeping a record of every change to your files

Version control is the practice of recording each change to a set of files, along with who made it, when, and why. With it you can compare any two versions, go back to an earlier one, and let several people edit the same project safely. Git is the most widely used version control tool today.

Learn more

GitHub

A website that hosts Git repositories online

GitHub is a website that stores copies of Git repositories on the internet, so a team can share one project. Besides storage, it offers pull requests for reviewing changes, issue lists, and automatic checks. Git is the tool on your computer; GitHub is one of several services, along with GitLab, that keep repositories online.

Learn more

Pull request (PR)

A request to review and merge your branch

A pull request, or PR, is a page on a site like GitHub that asks the team to merge the changes on your branch into the main branch. Reviewers read the diff, leave comments, and approve it; pushing more commits updates the same PR. It is less a code exam than a place to explain what you changed and why.

Learn more

Diff

A line-by-line view of what changed

A diff shows the difference between two versions of files: lines starting with - were removed and lines starting with + were added. git diff shows changes not yet staged, and git diff --staged shows what is about to be committed. Reading the diff before every commit is the easiest way to catch a mistake, including changes made by an AI.

Learn more

.gitignore

A file listing what Git should not track

.gitignore is a text file in the project that lists files and folders Git should ignore, such as node_modules, build output, and .env files holding secrets. Each line holds one pattern: a trailing / means a folder and * matches any name. It has no effect on files that are already committed; those need git rm --cached first.

Learn more

Snapshot

A full picture of all files at one moment

A snapshot records the state of every file in a project at one moment. Each Git commit is a snapshot, not just a list of changes; files that did not change simply point to the copy already stored, so snapshots stay small. That is why Git can jump to any commit instantly and compare two moments quickly.

Learn more

Working tree

The real files you see and edit

The working tree is the project folder as you see it: the actual files you open and edit. Git compares it with the last commit to tell you what changed. It is one of three places a change can be, along with the staging area and the repository, and git status shows where each change sits.

Learn more

Staging area

Where you gather changes for the next commit

The staging area, also called the index, holds the changes you have chosen for the next commit. git add moves a change there, and git commit saves only what is staged. Thanks to this middle step you can edit five files but commit just the two that belong together, which keeps the history easy to read.

Learn more

Clone

Copying a whole repository onto your computer

Cloning copies an existing repository, usually from GitHub, onto your computer: every file plus the full history. Git also remembers where it came from as a remote named origin, so you can later pull new changes and push your own. You clone only once; after that, git pull keeps you up to date.

Learn more

Remote

A copy of the repository on another computer

A remote is another copy of the same repository, usually on GitHub, that everyone agrees to share. By convention the main one is called origin. git push sends your commits to it, and git pull or git fetch brings in other people's commits. Your local work does not change; the remote is simply the meeting point.

Learn more

Push

Sending your commits to the remote

Pushing uploads the commits on your branch to a remote so others can see them. The first time, git push -u origin main also links your branch to the remote one, so plain git push works afterwards. If someone else pushed first, Git refuses until you pull their work. git push --force overwrites their commits, so avoid it on shared branches.

Learn more

Pull

Fetching remote commits and merging them in

Pulling downloads new commits from the remote and immediately combines them with your current branch. It is git fetch followed by a merge, so it can cause a conflict if you changed the same lines. git pull --rebase replays your own commits on top instead, keeping the history in a single line.

Learn more

Fetch

Downloading remote commits without merging

Fetching downloads the latest commits from a remote but leaves your own branch untouched. The new work waits under names like origin/main, so you can look at it before deciding to merge. That makes fetch the safe way to see what others have pushed; git pull is fetch plus an immediate merge.

Learn more

Merge

Combining the work of two branches

Merging joins the commits of one branch into another, usually a finished feature branch into main. If the two branches changed different parts, Git combines them on its own; if they changed the same lines differently, it stops with a conflict for you to resolve. A merge keeps the history as it really happened.

Learn more

Conflict

When two changes touch the same lines

A conflict happens when two branches changed the same lines of a file in different ways, so Git cannot decide which to keep. Git stops and marks the spot with <<<<<<<, =======, and >>>>>>>. Edit the file into the correct version, delete the markers, then git add and commit. A conflict is not an error; it is Git asking a person to decide.

Learn more

Fork

Your own copy of someone else's repository

A fork is a copy of another person's repository made under your own account, usually on GitHub. You cannot push to a project you do not own, so you push to your fork and then open a pull request back to the original. Forking is the usual way to contribute to open-source projects.

Learn more

Rebase

Moving your commits on top of another point

Rebasing takes your commits and replays them on top of another commit, so the history reads as one straight line. git rebase -i also lets you combine, reword, or reorder commits before sharing them. A rebase creates new commits in place of the old ones, so never rebase commits that others already have.

Learn more

HEAD

A pointer to where you are in the history right now

HEAD is Git's name for the commit you are on right now, usually the latest commit of your current branch. Many commands count from it: HEAD~1 is one commit before, HEAD~3 three before. git reflog lists every place HEAD has been, which is how lost commits are often recovered.

Learn more

Variable

A name that holds a value

A variable is a name you give to a value so you can use it later. In Python, name = value stores it, and the = means put this value into this name, not equals. You can change what a variable holds at any time and write its name wherever you would write the value.

Learn more

Function

A named block of code you can reuse

A function is a block of code with a name, so you can run it again whenever you need it. In Python you make one with def, list the values it takes inside the brackets, and use return to give a value back. print() and len() are functions that come with Python; def lets you make your own.

Learn more

Condition

A yes-or-no test that decides which code runs

A condition is a question whose answer is True or False, such as score >= 60. An if statement runs its lines only when the condition is True, and else covers the other case. The lines inside must be indented by four spaces; that is how Python tells where the if block ends.

Learn more

Loop

Code that runs again and again

A loop runs the same lines again and again. A for loop goes through items one at a time, such as each number in range(1, 11) or each item in a list. A while loop repeats as long as a condition stays True, so if the condition never becomes False, it never stops.

Learn more

Indentation

Spaces at the start of a line that group code

Indentation is the space at the start of a line. In Python it is part of the rules: the lines under if, for, or def must be indented, usually by four spaces, to show they belong inside. If a line that should be indented is not, or the widths do not line up, Python stops with an IndentationError.

Learn more

List

An ordered collection of values in [ ]

A list keeps several values in one place, in order, inside square brackets. Each item has a position number that starts at 0, so fruits[0] is the first item. You can add items with append(), count them with len(), and go through them one by one with a for loop.

Learn more

Dictionary

Pairs of keys and values in { }

A Python dictionary stores pairs of a key and a value inside curly braces, like {"math": 80}. You look a value up by its key instead of by position, so scores["math"] gives 80. Assigning to a new key adds a pair, and each key can appear only once. In code it is often shortened to dict.

Learn more

Access token

A secret string that lets a tool use your account

An access token is a long secret string a service gives you so that your tools can use your account without your password, for example to upload a game to Cadeplay. Treat it like a password: keep it in a .env file, never paste it into a chat or into code, and delete it in the service's console if it leaks. It has nothing to do with the tokens an AI counts in text.

Learn more

Game loop

The cycle a game repeats many times a second: read input, update the world, draw the screen.

The game loop is the heart of every game. In each round it reads the player's input, updates positions, collisions and score, and draws the new picture. One round makes one frame. Engines run the loop for you, and you write what happens inside it.

Learn more

FPS (frames per second)

How many new pictures a game draws every second.

FPS counts how many times per second the game loop finishes and shows a new frame. 60 FPS means a frame every 16.7 milliseconds and feels smooth; below about 30 the game starts to stutter. Heavy drawing or slow code in update lowers FPS.

Learn more

Sprite

A small picture that moves around in a game, such as a character, a coin or a bullet.

A sprite is a 2D image the game draws at a position every frame. A walking character is often one sprite sheet, a strip of pictures shown one after another to make an animation. Sprites usually carry a hitbox for collision checks.

Learn more

Collision detection

Checking every frame whether two things in a game touch, using invisible boxes called hitboxes.

Collision detection decides when a player lands on a platform, picks up a coin or gets hit. The simplest way is to give each sprite a rectangle (hitbox) and check if two rectangles overlap. Engines include physics systems that do this for you.

Learn more

Delta time

The time that passed since the last frame, used so a game runs at the same speed on every device.

Screens refresh at different speeds, so frames do not all take the same time. Multiplying speed by delta time (dt) moves things by distance per second instead of distance per frame. Without it, a game runs faster on fast monitors and slower on slow phones.

Learn more

Workflow

A fixed sequence of steps for getting a job done

A workflow is a set of steps that always runs in the same order. In AI design, a workflow follows a path written in advance, while an agent decides its own next step. On GitHub, a workflow is a YAML file in .github/workflows/ that runs steps automatically — for example, running tests or asking Claude to fix an issue when someone comments.

Privacy policy

A public page saying what personal data an app collects and why

A privacy policy is a public page that explains what personal data an app or site collects, why, who it is shared with and how users can delete it. App stores require its address before an app can be published, and reviewers check that it matches what the app really does. Many countries' laws also require one.

Learn more

Babylon.js

A free 3D game engine that runs inside the web browser

Babylon.js is an open-source engine for 3D games and scenes that run in a web page, with physics, animation, lighting and 3D model loading built in. It is written in TypeScript and can be used from JavaScript too. Because the browser is the runtime, players open the game from a link with nothing to install.

Learn more

Construct

A 2D game maker you use in the browser, mostly without code

Construct is a game engine for 2D games that runs in the web browser. Instead of typing code, you build the rules on "event sheets": when this happens, do that. JavaScript can be added when you need more. It exports games for the web and other platforms.

Learn more

C++

A fast, long-standing language used inside game engines and browsers

C++ is a programming language that is turned into machine code ahead of time, so programs run very fast and control memory directly. Game engines such as Unreal Engine, web browsers and many large games are written in it. The price is difficulty: mistakes with memory can crash a program, and it takes long to learn.

Learn more

C#

Microsoft's programming language, used for Unity games

C# (say "C sharp") is a programming language made by Microsoft. It is the language you write Unity game scripts in, and it is also used for Windows programs and web servers. It is easier than C++ because memory is cleaned up for you, but it still has a large world of tools to learn.

Learn more

Dart

Google's programming language, used to write Flutter apps

Dart is a programming language made by Google. Flutter apps are written in it, so learning Dart is the first step to building phone apps with Flutter. It looks similar to JavaScript and Java, and it can be turned into fast machine code for phones or into JavaScript for the web.

Learn more

Defold

A free, lightweight game engine scripted in Lua

Defold is a free game engine made mainly for 2D games, with small build sizes so games load fast on phones and the web. Game logic is written in Lua. It appears on the game-server page because servers such as Colyseus ship a Defold SDK.

Learn more

Flutter

Google's toolkit for building apps for phones, web and desktop from one code

Flutter is a free toolkit from Google for making apps. You write the app once in Dart, and the same code builds an iPhone app, an Android app, a web page or a desktop program. Every part of the screen is a widget, and widgets are put inside other widgets to build the whole screen.

Learn more

Flame

A free 2D game engine built on top of Flutter

Flame is an open-source 2D game engine that runs inside Flutter. It adds what Flutter lacks for games: a game loop, sprites, collision detection and input handling, while the menus around the game can still be normal Flutter widgets. It is for 2D only; do not plan a 3D game on it.

Learn more

Godot

A free, open-source engine for 2D and 3D games

Godot is a game engine anyone can use for free, with no fees on sales, because it is open source under the MIT license. It makes both 2D and 3D games, and you write game code in GDScript, a language that looks like Python, or in C#. It is light enough to run on an ordinary laptop.

Learn more

Go

Google's programming language, popular for servers

Go (also called Golang) is a programming language made at Google. A Go program compiles into one executable file that runs fast and handles many connections at once, so it is popular for servers. The Nakama game server is written in Go, and you can extend it with your own Go modules.

Learn more

Haxe

A programming language that turns one code into many other languages

Haxe is an open-source programming language whose compiler turns the same code into JavaScript, C++, C# and other targets. Game developers use it to ship one game to the web, desktop and phones. It appears on the game-server page because some servers ship a Haxe SDK.

Learn more

Lua

A small scripting language that is easy to put inside games

Lua is a light, simple scripting language that programs can carry inside themselves. Game engines and servers embed it so that game rules can be written and changed without rebuilding the whole program. Defold uses Lua, and the Nakama server accepts Lua modules next to Go and TypeScript.

Learn more

Phaser

A free JavaScript framework for 2D browser games

Phaser is an open-source framework for making 2D games that run in the web browser, written with JavaScript or TypeScript. It runs the game loop for you and gives you sprites, physics, sound and input, so you only write what happens each frame. Many first web games are made with it.

Learn more

PixiJS

A fast JavaScript library for drawing 2D graphics in the browser

PixiJS is an open-source library that draws 2D pictures and sprites very fast in a web page, using the graphics chip. It only draws: it has no physics, sound or game rules of its own, so it is a drawing library rather than a full game engine. Games add those parts themselves or use an engine such as Phaser.

Learn more

Unity

A widely taught game engine for mobile, PC and console games

Unity is a game engine used for a large share of mobile games and many PC and console games. You build scenes in its editor and write game scripts in C#. It exports to almost every platform, including the web (WebGL), which is why so many courses teach it. It is heavy for a very small first game.

Learn more

Unreal Engine

Epic Games' engine for high-quality 3D games

Unreal Engine is a game engine from Epic Games, chosen when the look matters most: realistic lighting, materials and large 3D worlds. Game code is written in C++ or built visually with Blueprints. It needs a powerful computer and is too big for a first small game.

Learn more

Blueprint

Unreal Engine's way of building game logic by connecting boxes

Blueprint is the visual scripting system of Unreal Engine. Instead of typing code, you place boxes (nodes) such as "when the key is pressed" or "play a sound" and draw wires between them. It lets you make game logic without writing C++, but big Blueprint graphs can become hard to read.

Learn more

glTF

The standard file format for sending 3D models

glTF is an open file format for 3D models, kept by the Khronos Group. One file holds the shape, materials, textures and animations, ready for an engine to load quickly, which is why it is often called "the JPEG of 3D". It comes as .gltf (text plus separate files) or .glb (everything in one binary file).

Learn more

TypeScript

JavaScript with types added, checked before the code runs

TypeScript is JavaScript plus types: you write which kind of value each variable holds, and a checker warns about mistakes before the program runs. Browsers run JavaScript, so TypeScript is first turned into plain JavaScript. Large web apps, Babylon.js and many game servers use it.

Learn more

Rust

A fast programming language that blocks many memory mistakes

Rust is a programming language that runs as fast as C++ but checks memory use while compiling, so whole kinds of crashes and security bugs are stopped before the program runs. It is used for servers, command-line tools and game backends such as SpacetimeDB modules. It is known for being strict and slow to learn.

Learn more

PHP

A programming language that builds web pages on the server

PHP is a programming language that runs on a web server and builds the HTML page before it is sent to the browser. A large part of the web runs on it, including WordPress, and SONUB itself is a PHP (Laravel) program. The visitor never sees PHP code, only the page it produced.

Learn more

Vite

A tool that starts and builds web projects quickly

Vite is a front-end build tool. It creates a ready-to-run project (React, Vue and others), runs a development server that updates the page as soon as you save, and with one command builds the final files into a dist folder that any web server can serve. It needs Node.js.

Learn more

Pyodide

Python that runs inside the web browser

Pyodide is the real Python interpreter turned into WebAssembly so it runs inside a web page. SONUB's Python lessons use it, so your code runs on your own computer with nothing to install. The first load takes a while because the runtime is downloaded. It cannot open normal network servers or run background services like Python on a computer.

Learn more

A/B testing

Showing two versions to different players to see which works better

In an A/B test, players are split into two groups at random: group A sees the current version and group B sees a changed one, such as a different price or tutorial. You then compare a number you chose in advance, like how many players come back the next day. It replaces guessing with measurement, but needs enough players for the difference to mean anything.

Learn more

Age rating

The age limit a store puts on a game based on its content

Before a game is published, the store asks a content survey: yes/no questions about violence, blood, gambling, chat with strangers and so on. Your answers decide the age rating shown on the store, such as "for ages 12 and up". A missing survey is a common reason a finished game cannot be submitted, and wrong answers can get the game removed later.

Learn more

Apache 2.0

A permissive open-source license that also covers patents

Apache License 2.0 is an open-source license: anyone may use, change, sell and share the code, even inside a closed commercial product. In return you keep the copyright and license notices and mark files you changed. It also grants the patents the contributors hold for that code, which is one reason companies like it.

Learn more

Asset

A picture, sound, model or other file a game uses

Assets are the files a game is built from besides its code: images, sprites, sounds, music, 3D models, fonts and level data. They are usually most of a game's size. You need the right to use every asset, including ones made with AI, so check the license before you ship.

Learn more

Battle pass

A season-long ladder of rewards unlocked by playing

A battle pass is a game item that runs for a season, often a few weeks or months. Playing and finishing challenges earns points that unlock reward tiers one by one. There is usually a free track and a paid track with more rewards, and it ends when the season ends, which gives players a reason to come back.

Learn more

Core loop

The short set of actions a player repeats over and over

The core loop is what the player does again and again in a game, for example: jump over an obstacle → collect a coin → speed up. If this loop is not fun, nothing added around it will save the game, so it is built and tested first. It is a design idea, not the same as the game loop in code that draws each frame.

Learn more

Ecosystem

All the tools, libraries and people around one technology

A technology's ecosystem is everything that grows around it: libraries, editors, tutorials, ready-made assets, forums and the people who answer questions. A large ecosystem means most problems already have an answer somewhere; a young one means you will build and solve more yourself. It is a big reason to choose one engine or language over another.

Learn more

Edge case

A rare or extreme situation where code often breaks

An edge case is an input or situation at the very end of what is possible: an empty name, a score of exactly zero, the phone losing signal while saving, or pressing two keys in the same frame. Code usually works for the normal case and breaks here, so listing edge cases and testing each one finds bugs early. AI is good at listing them.

Learn more

Frame

One still picture of the game screen, drawn once per loop

A game shows motion by drawing many still pictures quickly, like a flip book. Each picture is a frame: once per frame the game reads input, updates positions and draws the screen. At 60 frames per second each frame has about 16 milliseconds. Moving things a fixed amount per frame makes the game faster on faster screens, which is why delta time is used.

Learn more

Balancing

Tuning difficulty, rewards and numbers so a game feels fair and fun

Balancing is adjusting the numbers of a game: how high a jump goes, how many enemies a level has, how much a reward gives, how much an item costs. Small changes can make a game too easy, too hard or unfair. AI can simulate and suggest numbers, but whether it feels right is decided by people playing it.

Learn more

Game logic

The code that carries out a game's rules

Game logic is the part of the code that decides what happens: whether a hit lands, how points are counted, when a level ends, who wins. Drawing the screen and playing sounds are separate parts. In online games the server often runs the game logic so that players cannot cheat by changing their own copy.

Learn more

Go live

Switching an uploaded build to the one players actually get

On a game platform, uploading a build and making it live are two steps. An uploaded build that passed the checks waits until you promote it; from that moment it is the version players receive, and its play link opens. Keeping the steps apart lets you look at a build first, and a rollback can put the previous build back.

Learn more

Guild

A lasting group of players who play together inside a game

A guild (also called a clan) is a group that players create and join inside a game, with members, roles such as leader, join requests and a group chat. It keeps players coming back for each other. For the developer it is a community feature the game server has to store and manage, which is why the server choice matters.

Learn more

Hook

A fixed spot where your own code runs before or after a built-in action

A hook is a place a program leaves open so you can add code at a chosen moment. On the Nakama game server you can hook before and after every built-in call: for example, check a player's name before an account is created, or give a reward after a match ends. You extend the server without changing its own code.

Learn more

In-app purchase

Buying items or features inside an app through the store

An in-app purchase is a payment made inside an app or game, such as coins, an ad-free version or a battle pass. On phones it goes through the store's own payment system, and the store keeps a share of the price. The store gives back a receipt, which the game server should validate before granting the item.

Learn more

Inspector

A window for looking into a running scene and changing its values

An inspector is a debugging tool that lists the objects in a running game or page and shows their properties: position, size, colour, physics settings. You can change a value and see the result at once without restarting. Babylon.js, Unity and the browser's developer tools all have one.

Learn more

Interface

An agreed list of functions a piece of code promises to provide

In programming, an interface describes what something can do, not how: a list of functions with their inputs and outputs. Any code that has those functions can be used in that place. In Go, the Nakama server hands your modules typed interfaces, so the compiler checks you call them correctly.

Learn more

Leaderboard

A ranked list of players by score

A leaderboard ranks players by score, time or another number. Games often reset it daily or weekly so new players have a chance, and the server must decide how ties are broken and catch cheaters who send fake scores. Scores should be checked on the server, because anything the game client sends can be changed.

Learn more

License

The terms that say how code, art or data may be used

A license is the written permission that comes with code, images, sounds or data: whether you may use it, change it, sell it, and what you must do in return, such as credit the author. Finding something online does not mean you may use it. Open-source licenses such as MIT or Apache 2.0 allow a lot, but each has its own conditions.

Learn more

LiveOps

Running a game after launch with events, shop changes and updates

LiveOps (live operations) is the work of keeping a released game alive: weekend events, new shop items, seasons, balance changes and A/B tests, often changed from a dashboard without shipping a new build. Games that run for years depend on it, and some backends sell LiveOps tools so the team does not have to build them.

Learn more

Localization

Adapting a game's text and content to each language and culture

Localization is more than translation: besides the words, it fits dates, numbers, currencies, layout (some languages are longer, Arabic reads right to left) and cultural details to each market. AI can draft translations quickly, but a person who knows the language should check meaning, terms and tone before release.

Learn more

Matchmaking

Putting suitable players together into one match

Matchmaking is how an online game decides who plays with whom. The matchmaker collects players who want a match and groups them by rules such as similar skill, region, ping or game mode. Good matchmaking keeps matches fair and waits short; the two goals pull against each other.

Learn more

Meta layer

Everything around the match itself: accounts, friends, chat, saves, rankings

In game servers, the meta layer means the features outside the actual round of play: accounts and login, friends, guilds, chat, saved progress, leaderboards and shops. These are boring to build and easy to get subtly wrong, so many teams pick a game server that already has them instead of writing them over months.

Learn more

Module

A separate file or bundle of code you load into a program

A module is a piece of code kept in its own file or package so that other code can load and reuse it. In Python, `import json` loads the json module. On game servers such as Nakama or SpacetimeDB, you upload your own modules to add game rules. A bad module can still crash the program it runs inside.

Learn more

Native

Running directly as the device's own machine code

Native code has been compiled into the machine code of the processor it runs on, with no interpreter or extra layer in between, so it runs at full speed. A native app is built for one platform, such as iPhone. On a game server, running your logic natively in the same process is fast, but a crash there brings the whole server down.

Learn more

NPC

A character in a game controlled by the computer, not a player

An NPC (non-player character) is any character the game itself moves: a shopkeeper, a quest giver, an enemy guard. Its lines are written by the developers and its behaviour comes from rules in the code, often a state machine. AI can draft dialogue for many NPCs quickly, but someone still has to read and choose it.

Learn more

Physics

The part of a game engine that computes gravity, collisions and motion

In a game, physics is the code that moves objects the way the real world roughly does: gravity pulls things down, objects bounce, slide and stop when they collide. Engines include a physics system so you set mass, speed and shape instead of writing the maths. It is an approximation tuned to feel good, not an exact simulation.

Learn more

Presence

Information about who is online right now

Presence is the live status of each user: online, offline, in a match, away. Friends lists and guild lists use it to show a green dot next to a name. The server has to track every connection and tell others when it changes, usually over a WebSocket, which is harder at scale than it looks.

Learn more

QA

Checking a product for defects before release

QA (quality assurance) is the work of finding problems before players do: playing through levels, trying strange inputs, testing on different devices and writing down how to reproduce each bug. AI can list test scenarios, such as twenty ways to break a save system, but deciding what is good enough to ship is a person's job.

Learn more

Receipt validation

Checking that a store purchase is genuine before giving the item

After an in-app purchase, the store gives the game a receipt: proof of what was bought. A cheater can fake a receipt on their own device, so the game server sends it to Apple's or Google's servers to confirm it is real and not used before, and only then grants the item. Game servers such as Nakama do this check for you.

Learn more

Reducer

In SpacetimeDB, a function that runs inside the database and changes its tables

In SpacetimeDB, the database is also the server. You upload a module, and its functions, called reducers, run inside the database as one transaction each and change the tables. Clients call reducers instead of HTTP endpoints, and subscribers see the changed rows right away. The word means something else in web tools such as Redux.

Learn more

Rollback

Putting the previous version back after a bad release

A rollback undoes a release by switching back to the version that worked before. Platforms keep earlier builds so a broken update can be replaced in seconds instead of rushing a fix. It returns the code, but data that the bad version already changed, such as saved games, may need separate repair.

Learn more

Deterministic rollback

Rewinding and replaying the game when a late input arrives

In fast online games, waiting for every player's input would feel slow. With rollback, each game keeps running with the inputs it has; when a late input arrives, it rewinds to that frame and quickly replays to now. This only works if the simulation is deterministic: the same inputs always give exactly the same result on every machine.

Learn more

RPC

Calling a function on another computer as if it were local

RPC (remote procedure call) lets a program ask another computer to run a named function with some arguments and send back the result. On the Nakama server you register your own RPCs, and the game calls them by name. MCP messages use JSON-RPC 2.0, where each call is a small JSON object with a method name and parameters.

Learn more

Tick

One step in which the game server updates the match at a fixed rate

A game server does not update the world continuously; it moves forward in ticks. On each tick it reads the inputs that arrived, applies the game rules and sends the new state to players. A higher tick rate (for example 60 per second instead of 10) feels more responsive but costs more processing and network traffic.

Learn more

State machine

A design where something is in one state at a time and moves by rules

A state machine lists the states something can be in and the rules for moving between them. A game character might be idle, running, jumping or falling, and "jump pressed while running" moves it to jumping. Because only one state is active, the code avoids impossible mixes such as jumping and crouching at once.

Learn more

Steam

Valve's store for PC games

Steam is the largest store for PC games, run by Valve. Developers pay a fee per game rather than a yearly account fee, and build a store page with a trailer, screenshots and tags. Wishlists collected before launch matter a lot, because Steam tells those players when the game comes out.

Learn more

Subscribe

Asking to be told automatically whenever certain data changes

To subscribe is to register interest in some data so the server pushes every change to you, instead of you asking again and again. In SpacetimeDB a client subscribes to a query, and the rows it cares about arrive the moment they change. It needs a connection that stays open, such as a WebSocket.

Learn more

Test track

A release channel that gives a build only to chosen testers first

Google Play releases go through tracks: internal testing, closed testing, open testing and production. A test track sends a real, installable build only to the testers you list, so you can find problems before everyone gets it. New personal developer accounts must run a closed test with at least 12 testers for 14 days before applying for production. Apple's TestFlight plays a similar role.

Learn more

UI

The part of a program people see and touch

UI (user interface) is everything a user sees and operates: buttons, menus, text, icons, input boxes. Good UI makes it obvious what to do next. UX (user experience) is the wider question of how using it feels. In games, the UI is the score, health bar and menus drawn over the game world.

Learn more

Widget

One building block of a screen

A widget is one reusable part of a user interface: a button, a text label, a list, a card, or a box that holds other widgets. Screens are built by nesting widgets inside widgets. In Flutter everything on screen is a widget, and in Flame the game canvas sits among normal Flutter widgets.

Learn more

Wishlist

A list where players save games they want before release

On Steam, players can add an upcoming game to their wishlist. When the game launches or goes on sale, Steam notifies them, so wishlists turn into first-week sales. Collecting wishlists before launch, with a good store page and trailer, matters more than most first-time developers expect.

Learn more

App review

A store checking an app before it is published

Before an app or game appears in a store, the store reviews the build: does it crash, does it follow the rules on privacy, payments and content, are the store texts honest? Apple's App Review is known as strict. Review can take days and can reject a build, so plan time for it. Updates go through review again.

Learn more

Play Console

Google's website for publishing and managing Android apps

Google Play Console is where developers publish apps to Google Play. You pay a one-time registration fee and verify your identity, then create the app, upload a build signed with your upload key, fill in the store listing and data safety form, and send it through testing tracks and review. Sales and crash reports are shown there too.

Learn more

App store

An online shop where people find and install apps and games

An app store is the official place to find, buy and install apps: Apple's App Store on iPhone, Google Play on Android, Steam for PC games. The store handles payments and updates, and reviews each app before publishing. In return developers pay registration fees and a share of sales. A package manager is sometimes called an app store for code.

Learn more

Google Play

Google's app store for Android

Google Play is the main store for Android apps and games and reaches the largest number of phones. Developers publish through Play Console with a one-time registration fee. Builds go through testing tracks and review; new personal accounts must finish a closed test with real testers before their first production release.

Learn more

Prototype

A quick rough version made to test an idea

A prototype is built fast to answer one question, such as "is this jump fun?", and is expected to be thrown away. It can use placeholder art and messy code. It is not the same as an MVP: a minimum playable game is something a stranger can pick up and enjoy, while a prototype only has to teach you something.

Learn more

Binary

A file of machine-readable bytes, usually a ready-to-run program

In everyday developer talk, a binary is a compiled program: a file of bytes the computer runs directly, not text you can read. "Shipped as a single binary" means the whole server is one file you copy and run. Binary formats such as WebAssembly are made for machines, not people. Opening a binary in a text editor shows garbage.

Learn more

Executable

A file you can run as a program

An executable is a file the operating system can start as a program, by double-clicking it or typing its name. On Windows it usually ends in .exe; on Linux and macOS any file with execute permission can run, including scripts. Caddy, for example, is a single executable. Upload sites often reject executables because they can carry harmful code.

Learn more

Conventional Commits

A rule for commit messages: put the kind of change first, like feat: or fix:

Conventional Commits is a widely used convention for commit messages. Each message starts with a type and a colon, such as feat: for a new feature, fix: for a bug fix or docs: for documentation, then a short description. Because the format is fixed, tools can read the history to build change logs and version numbers.

Learn more

Updates were rejected

Git's message when the remote has commits you do not have yet

git push stops with "Updates were rejected" when someone else pushed to the same branch first, so the remote has commits missing from your copy. Git refuses because pushing would throw their work away. Do not reach for --force: run git pull --rebase to put your commits on top of theirs, fix any conflict, then push again.

Learn more

History

The record of commits stacked up one after another

In Git, the history is the chain of every commit made in a repository, each pointing to the one before it. git log shows it, newest first. Clear commit messages make the history readable months later. Rewriting history that others already pulled (rebase, force push) breaks their copies, so rewrite only your own unpushed commits.

Learn more

main

The usual name of a repository's default branch

main is the name most repositories give their default branch, the one that holds the finished, shared version. GitHub names it main for new repositories; older projects may call it master. In teams, nobody commits straight to main: you work on a branch and merge it through a pull request after review.

Learn more

Tracking

Git watching a file for changes because it is part of the repository

A tracked file is one Git already knows about because it was added and committed; Git reports every change to it. New files stay untracked until you git add them. Adding a file to .gitignore does not stop tracking a file that was already committed: remove it from tracking with git rm --cached first.

Learn more

Tracking branch

The remote branch a local branch is paired with

A local branch can be linked to a branch on the remote, called its tracking (upstream) branch. git push -u origin main sets this link once; after that, plain git push and git pull know where to go, and git status tells you how many commits you are ahead or behind. Without it, Git asks you which remote branch you mean.

Learn more

GitLab

A Git hosting service similar to GitHub

GitLab is a service for hosting Git repositories and working on them as a team, like GitHub. It calls a pull request a "merge request" and has its own CI/CD pipelines. Besides the gitlab.com website, a company can install GitLab on its own servers. The everyday flow of branch, push, review and merge is the same.

Learn more

GitHub Actions

GitHub's built-in automation that runs jobs when something happens in a repository

GitHub Actions runs workflows on GitHub's servers when an event happens: a push, a new pull request, a comment or a schedule. A workflow is a YAML file in .github/workflows/ listing steps such as installing, testing and deploying. Claude Code and Codex can run inside it, for example answering when someone writes @claude in a pull request.

Learn more

Code review

Teammates reading a change and commenting before it is merged

In a code review, other people read your change, usually as a pull request, before it joins the main branch. Reviewers look for bugs, unclear code and missing tests, leave comments and finally approve. Small pull requests get careful reviews; huge ones tend to be skimmed. AI reviews help, but a person still decides.

Learn more

Project root

The top folder of a project

The project root is the top-level folder that holds the whole project: the place where git init was run, and where files such as .gitignore, package.json, README.md or CLAUDE.md usually live. Tools look for their settings there, and many commands expect to be run from it.

Learn more

Markdown

A plain-text way to write headings, lists and code with symbols like # and -

Markdown is a simple text format: a line starting with # becomes a heading, - starts a list item, and text between two asterisks becomes bold. The file stays readable as plain text and can also be shown nicely formatted. README.md, CLAUDE.md, AGENTS.md and SKILL.md are all Markdown files, and AI chat answers are usually written in it.

Learn more

Read-only

Allowed to read but not to change anything

Read-only means something can be looked at but not changed: a read-only file cannot be edited, and a read-only disk cannot be written to. For AI coding tools it is the safest mode: in Codex's read-only sandbox the agent may read files and run harmless commands, but cannot edit files. It is a good start on a project you do not know yet.

Learn more

Standard library

The modules that come with Python, ready to use without installing

Python's standard library is the large set of modules installed together with Python itself: json for JSON, urllib.request for web requests, http.server for a small web server, math, random and many more. Because nothing needs to be installed with pip, a program that uses only the standard library runs anywhere Python runs.

Learn more

Config file

A file that holds the settings a program reads when it starts

A configuration file stores choices that change how a program behaves, such as ports, folders, model sizes or permissions, so you change behaviour by editing the file instead of the code. Common formats are JSON, YAML, TOML and .env. Secrets such as API keys belong in a file kept out of Git, not in a shared config file.

Learn more

Bug

A mistake in a program that makes it behave wrongly

A bug is a defect in a program: it crashes, shows the wrong result or does something nobody intended. Bugs come from mistakes in code, unexpected input or changed conditions. Fixing one starts with reproducing it reliably, then finding the cause (debugging), then adding a test so the same bug does not come back.

Learn more

Software test

Code that checks other code works as expected

A test is a small program that runs your code with a known input and checks the output is what you expect; it passes or fails. A set of tests is run after every change, so a fix that breaks something else is caught at once. With AI coding tools, tests are the safety net: you give the tests and ask the agent to change code until they pass.

Learn more

Reproduce

Making the same result or problem happen again on purpose

To reproduce something is to make it happen again under the same conditions. A bug you can reproduce step by step can be fixed and tested; one that "happens sometimes" is hard to fix. In AI experiments, reproducibility means another person gets the same result with the same code, data and random seed.

Learn more

Newline

The invisible character that ends a line, written \n

A newline is the character that moves text to the next line. You do not see it, but it is in the file: in code it is written \n. Linux and macOS end lines with \n, while Windows uses \r\n, which can confuse some tools. HTTP puts \r\n at the end of each header line and an empty line before the body.

Learn more

node_modules

The folder where npm puts the packages a project installs

When you run npm install, npm downloads every package listed in package.json, and the packages they need, into a node_modules folder in the project. It can grow to hundreds of megabytes. Never commit it: put it in .gitignore, because anyone can rebuild it from package.json and the lock file with npm install.

Learn more

Overhead

Extra memory or time spent besides the main job

Overhead is the cost that comes on top of the real work. When an AI model runs, memory holds not only the weights but also the KV cache, compute buffers and the runtime's own overhead, so a model whose weight file is 4 GB may need 5–8 GB or more. Plan for overhead, or a model that "fits" on paper will not fit in practice.

Learn more Learn more about weights and parameters

Compute buffer

Temporary memory used while a calculation is running

A compute buffer is working space a program sets aside to hold intermediate results during a calculation. When a language model runs, each layer produces numbers that the next layer needs, and they are kept in these buffers. They are needed on top of the weights and the KV cache, which is one reason a model needs more memory than its file size.

Learn more Learn more about weights and parameters

Parsing

Reading text or code and working out its structure

To parse is to read a piece of text and turn it into a structure a program can use. A browser parses HTML into a tree of elements before drawing the page; the shell parses a command line into the command and its arguments; json.loads parses JSON text into Python values. A parse error means the text breaks the expected format.

Learn more

Breakpoint

A mark that pauses the program at that line

A breakpoint tells a debugger to stop the program when it reaches a certain line. While it is paused you can read every variable, then step forward one line at a time to see exactly where things go wrong. In the browser, open DevTools → Sources and click a line number to set one.

Learn more

Input event

One thing a program is told happened, such as a key press or a click

An input event is a small message saying something happened: a key went down, the mouse moved, a finger touched the screen. The operating system turns the raw signal from the device into an event and queues it for the window in front, and the program reacts to each event in turn. Web pages handle them with listeners such as onclick.

Learn more

Roundtrip

Converting something and back to check nothing was lost

A roundtrip test converts data one way and then back again, and checks the result equals the original. In the XSLM course, roundtrip: OK means the whole training text was encoded into token numbers and decoded back to exactly the same text, so the tokenizer loses nothing. If a single character changes, the test fails.

Learn more

Python object

A value in a program together with the functions that belong to it

In Python every value is an object: a number, a piece of text, a list, a dictionary. An object has a type and comes with its own functions, called methods, used with a dot, such as fruits.append("pear"). Classes are how you design your own kinds of objects. Saving objects to a file needs converting them to text or numbers first.

Learn more

append

The list method that adds one value to the end

list.append(value) puts one new value at the end of a list and changes that list in place. It returns None, so write fruits.append("pear") on its own line, not fruits = fruits.append("pear"), which would leave fruits as None. To add several values at once, use extend.

Learn more

Class

A template that bundles data and functions to make objects

A class describes a kind of object: what data each one holds and what it can do. You write it once with class, then make as many objects (instances) from it as you need, each with its own values. Functions inside a class are methods and receive the object itself as self. A class is a design; nothing happens until you create an object.

Learn more

def

The Python keyword that creates a new function

def starts a function definition: the function's name, its parameters in brackets and a colon, then the body indented by four spaces. Defining a function does not run it; it runs only when you call it with brackets. Use return inside to send a value back.

Learn more

Key

The name used to find a value in a dictionary

A dictionary stores pairs of key and value, and the key is the label you look the value up by: in scores["math"], "math" is the key. Each key appears only once; giving an existing key a new value replaces the old one. Asking for a key that is not there raises KeyError, while .get() returns None instead.

Learn more

FileNotFoundError

Python's error when the file you try to open does not exist

FileNotFoundError appears when a program asks for a file or folder that is not where it looks, for example open("data/train.txt") run from the wrong folder. The path is relative to the current folder, not to the script. Check where you are with pwd, list files with ls, and check the spelling and capital letters.

Learn more

HTTPServer

The simple web server that comes with Python

HTTPServer is a small web server in Python's standard library (the http.server module). You give it a handler class that decides what to answer for GET or POST, and it serves requests one at a time. It is fine for learning and local tools, like the XSLM runner, but it is not built for a public site with many visitors.

Learn more

len

The function that counts how many items or characters there are

len(x) returns the length of x: the number of items in a list, characters in a text, or keys in a dictionary. It does not change x. Remember that positions start at 0, so the last item of a list is at len(x) - 1, not len(x).

Learn more

None

Python's value meaning "nothing here"

None is a special value that means "no value". A function without return gives back None, and dict.get() returns None for a missing key. Seeing None printed where you expected a number usually means a forgotten return. Check for it with "is None", and note it is different from 0 or an empty text.

Learn more

range

The function that makes a sequence of numbers for loops

range(start, stop, step) produces numbers from start up to, but not including, stop. range(1, 11) gives 1 to 10, and range(5) gives 0 to 4. It is used most with for loops. Forgetting that the end number is left out is the most common mistake.

Learn more

urlopen

A Python function that sends an HTTP request and reads the answer

urllib.request.urlopen(url) opens a web address, sends the request and returns the response, whose .read() gives the body as bytes. Pass a Request object to send JSON with POST. If the server cannot be reached or answers with an error code, it raises an error instead of returning a fake answer. It is part of the standard library, so nothing has to be installed.

Learn more

else

The branch that runs when the if condition is false

else gives an if statement a second path: if the condition is true the if block runs, otherwise the else block runs. elif (else if) checks another condition in between. else takes no condition of its own, ends with a colon, and its lines are indented like the if block.

Learn more

IndentationError

Python's error when lines are not indented correctly

IndentationError means the spaces at the start of a line do not match what Python expects: a block after a colon (if, for, def) is not indented, or lines in the same block use different amounts. Python uses indentation instead of brackets, so it matters. Use four spaces per level and do not mix tabs and spaces.

Learn more

print

The Python function that shows values on the screen

print() writes values to standard output, usually the screen, followed by a newline. It is the quickest way to see what a program is doing. It only displays: a function that prints a result but does not return it gives back None. In programs that talk over standard output, such as MCP servers, a stray print breaks the messages; write logs to stderr instead.

Learn more

return

The keyword a function uses to give a result back

return ends a function and hands a value back to the code that called it, so the result can be stored or used in more calculations. A function with no return gives back None. return is different from print: print only shows a value on screen, return passes it on.

Learn more

assert

A check line that stops the program if a condition is false

assert condition does nothing when the condition is true and raises AssertionError when it is false, stopping the program at that line. It is a quick way to state "this must be so", for example that a tokenizer gives back the original text, or that the text you are about to replace really exists. Python skips asserts when run with -O, so do not use them for checks a real program depends on.

Learn more

Android App Bundle

The .aab file you upload to Google Play to publish an app

An Android App Bundle (.aab) is the package you upload to Google Play. It holds all the code and resources of your app, and Google Play builds from it a smaller install file that fits each phone. New apps on Google Play must be uploaded as a bundle, not as an old-style .apk file.

Learn more

Upload key

The secret key you sign an app with before uploading it to Play

Google Play checks that every new version comes from the same developer. You sign the app bundle with your upload key, Google checks that signature and then signs the app again with its own app signing key. Keep the key file and its passwords outside the project, back them up, and never commit or share them. If it is lost, you must ask Google to reset it in Play Console.

Learn more

Code signing

A digital seal that proves an app really comes from you

Before an app can be published, it is signed with a secret key. The signature lets the store and the phone check two things: who made the app, and that nobody changed it after it was signed. Google Play uses your upload key; Apple uses a signing certificate and a profile, which Xcode can handle for you with automatic signing. Most upload errors about signing mean the wrong key or team was chosen.

Learn more

Provisioning profile

An Apple file that allows a signed app to install and run

A provisioning profile ties together your team, your app's bundle ID, your signing certificate and, for testing, the devices allowed to run it. An iPhone will not run an app whose profile does not match. With automatic signing turned on, Xcode creates and renews profiles for you. On the page it appears as just "profile", which has nothing to do with a user profile.

Learn more

Bundle ID

The one-of-a-kind name tag of an app, like com.company.app

Every Apple app has a bundle ID written like a reversed web address, such as com.example.notes. No two apps in the App Store can share one, and it links your Xcode project, your signing profile and your record in App Store Connect. Choose it with care: once a build is uploaded, it cannot be changed. On Android the same idea is called the application ID.

Learn more

App Store Connect

Apple's website for registering and managing App Store apps

App Store Connect is where an iPhone app lives before and after release. There you create the app's record with its bundle ID, name and screenshots, fill in the privacy details, see the builds Xcode uploaded, invite TestFlight testers and submit the app for App Review. It is Apple's counterpart to Google Play Console.

Learn more

Apple Developer Program

Apple's paid membership needed to publish on the App Store

To put an app on the App Store or hand it to testers through TestFlight, you join the Apple Developer Program with your Apple Account. Membership is paid yearly (US$99 for individuals in most countries) and gives access to App Store Connect, signing certificates and beta tools. You can build and run apps on your own iPhone with Xcode without it, but you cannot publish.

Learn more

TestFlight

Apple's service for giving testers an iPhone app before release

Every build you upload to App Store Connect can be sent to TestFlight. Testers install the free TestFlight app, accept your invitation and try the build before ordinary users do. Builds for outside testers get a short review first, and each build expires after 90 days. Fix what testers report, raise the build number and upload again.

Learn more

Xcode

Apple's free app for building iPhone and Mac apps

Xcode is the official tool for making apps for Apple devices. It runs only on a Mac and is free from the Mac App Store. Even if you write the app with Flutter or React Native, the final iPhone build is signed, archived and uploaded through Xcode or its command-line tools. It also contains the iPhone simulator.

Learn more

Archive

Xcode's step that packs an app into a release build to upload

An archive is the release version of an iPhone app, built and signed in one package. In Xcode you choose Product → Archive, then Distribute App to upload it to App Store Connect. Every upload needs a build number higher than the last one. The word is not about storing old files away.

Learn more

Release build

The final, optimized build made for publishing in a store

While you develop, apps run as debug builds: slower, larger and full of checking tools. A release build drops those tools, optimizes the code and is signed with your key, so it is the version users install from a store. Always test the release build before uploading, because some bugs show up only there.

Learn more

Store listing

The app's name, description and screenshots shown in a store

The store listing is the page people see before they install: app name, short and full description, icon, screenshots, category and a link to the privacy policy. You fill it in Play Console or App Store Connect, and reviewers check that it matches what the app really does. A misleading listing is one of the common reasons an app is rejected.

Learn more

Data safety form

The Play Console form that declares what data an app collects

Google Play asks every app to fill in the Data safety form: which kinds of user data it collects or shares, why, and whether the data is encrypted and can be deleted. The answers are shown to users on the app's store page. They must match the app's real behaviour and its privacy policy, including what third-party libraries collect.

Learn more

Version code

The internal number that must go up with every app upload

Besides the version name people see (like 1.2.0), each app build carries a whole number used by the store: the version code on Android, the build number on iPhone. Every upload must have a higher number than the last one, otherwise the store rejects it. In Flutter it is the number after + in the version line of pubspec.yaml.

Learn more

pubspec.yaml

A Flutter app's settings file: name, version and packages

Every Flutter or Dart project has a pubspec.yaml file at its root. It lists the app's name, its version (name and build number joined by +), the packages it depends on and assets such as images and fonts. After editing the package list you run flutter pub get. It is written in YAML, so indentation matters.

Learn more

React Native

A framework for building phone apps with React and JavaScript

React Native, made by Meta, lets you write a phone app once in JavaScript (or TypeScript) using React's component style and run it on both Android and iPhone. Unlike a web page in a box, it draws real native buttons and lists. It is one of the two most popular cross-platform choices, next to Flutter.

Learn more

iOS

The operating system of the iPhone

iOS is the software that runs every iPhone, made by Apple, just as Android runs most other phones. An app is built separately for each system, which is why stores ask for an iOS build and an Android build. iPhone apps are built with Xcode on a Mac and installed through the App Store or TestFlight.

Learn more

Binding

Glue code that lets one language call a library from another

Many fast libraries, such as llama.cpp, are written in C or C++. A binding wraps such a library so you can call it from another language like Python, Dart or JavaScript as if it were written there. The heavy work still runs in the original fast code. If a binding is older than the library, new features may be missing.

Learn more

Embed

Putting a file or model inside an app so it ships with it

To embed something is to pack it into your app, so the app can use it without fetching it from a server. A small language model can be embedded in a phone app together with a runner, and then it works offline. This is a different word from embedding, the list of numbers that stands for a word or sentence.

Learn more

Middleware

Code that sits between a request and the main work, adding a step

Middleware is a layer that every request or step passes through before (or after) the main code runs. It can check a login, write a log, shorten a long context or stop something unsafe, without the main code knowing. Web frameworks like Laravel use middleware for logins; agent harnesses use it around each model call.

Boundary value

A test value right on a limit, like a score equal to the cut-off

Bugs hide most often at the edges of a rule. If a program passes students with 60 or more, test 59, 60 and 61, not just 30 and 90. Writing >= where > was meant only shows up at exactly 60. Empty input, zero and the largest allowed number are boundary values too.

flush

Sending buffered output out right away instead of waiting

To save effort, a program collects what it prints in a buffer and sends it out in batches. When another program is waiting for each line, as an MCP client does, that delay looks like a freeze. print(..., flush=True) in Python pushes the line out at once. Without it, output may appear only when the buffer fills or the program ends.

Learn more

vendor folder

The folder holding outside code that tools download for a project

Package tools put code written by other people in a folder of its own: PHP's Composer uses vendor/, npm uses node_modules/. You never edit files there, because the next install overwrites them; change the version in the package list instead. That is why rules for an AI agent often say "do not touch vendor/".

elif

Python's "else if": test another condition when the first fails

In Python, if checks a condition, elif (short for else if) checks the next one only when the earlier ones were false, and else catches everything left. Python goes from top to bottom and runs only the first branch that is true, so put the most specific test first. Each line ends with a colon and the code under it is indented.

Learn more

KeyError

Python's error for looking up a key that is not in a dictionary

A dictionary finds values by key. Asking for a key that is not there, like scores["music"], stops the program with KeyError and the missing key. Check the spelling and capitals first. If a missing key is normal, use scores.get("music", 0), which returns a default value instead of failing.

Learn more

ValueError

Python's error for a value of the right type but the wrong content

ValueError means a function got the right kind of value but one it cannot use: int("abc") gets text, but not text that is a number. NumPy raises it when array shapes do not fit, for example when a @ b gets matrices whose inner sizes differ. Read the last line of the message, then print the value or its .shape.

Learn more

ModuleNotFoundError

Python's error "No module named …": the package is not installed

import numpy fails with No module named 'numpy' when Python cannot find that package. Usually it is not installed, or it was installed into another Python or another virtual environment. Turn on the project's venv, install with python3 -m pip install numpy, and run the program with the same python3.

Learn more

NameError

Python's error for using a name that was never defined

NameError: name 'x' is not defined means Python met a variable or function name it does not know. The usual causes are a typo, wrong capitals, using a variable before the line that sets it, or forgetting an import. Python reads names exactly, so Score and score are different.

Learn more

pytest

A tool that finds and runs Python tests

pytest runs every test in a project and reports which passed and which failed. It looks for files named test_*.py and functions whose names start with test_, and each test checks a result with a plain assert. Giving an AI agent the rule "run python -m pytest after every change" lets it check its own work.

Learn more

import

The Python statement that loads a module so you can use it

Python starts with only a few built-in functions; everything else lives in modules. import re loads the regular-expression module, and you then call its functions as re.search(...). from math import sqrt brings in one name directly. Modules that ship with Python always work; others must be installed with pip first.

Learn more

Raw string

A Python string written r"…" that keeps backslashes as they are

In a normal Python string a backslash starts a special character: "\n" is a new line and "\b" is a backspace. Putting r in front, as in r"\b\d+", keeps every backslash as typed. Regular expressions are full of backslashes, so write patterns as raw strings by habit.

Learn more

PyPI

The Python Package Index, the public store of Python packages

PyPI (pypi.org) is where pip downloads packages from. Anyone can publish there, which is why a package name with one wrong letter can be a trap. Check the exact name, the author and the number of downloads before installing something new. It plays the same role for Python as the npm registry does for Node.js.

Learn more

requirements.txt

A file listing the Python packages and versions a project needs

requirements.txt names every library a Python project uses, usually with a pinned version such as numpy==2.1.3. With it, anyone can rebuild the same environment in one command. Pinning matters because a newer version can change behaviour and break code that worked yesterday.

Learn more

Data type

The kind of a value, such as a whole number, a decimal or text

Every value has a data type, and the type decides what you can do with it. In Python, 3 is an int, 3.0 a float, "3" a str and True a bool. "3" + 4 fails because text and numbers do not add; convert first with int("3"). Picking the right type also matters for accuracy, as with money and floating point.

Learn more

console.log

JavaScript's function for printing a value

console.log prints whatever you give it. In a browser the text appears in the DevTools Console; in Node.js it goes to standard output in the terminal, so it can be piped to other commands like any program's output. It is the quickest way to see what a variable holds while debugging.

Learn more

JavaScript engine

The program inside a browser or Node.js that runs JavaScript

A JavaScript engine reads JavaScript code and turns it into instructions the computer can run, fast. Chrome and Node.js share Google's V8 engine; Firefox uses SpiderMonkey and Safari uses JavaScriptCore. Node.js is V8 taken out of the browser, with extra tools to read files and use the network instead of drawing pages.

Learn more

process.argv

The list of words a Node.js script was started with

process.argv is an array of the command line that started a Node.js script. Item 0 is the path of node, item 1 the path of the script, and from item 2 on come the arguments you typed. So node greet.js Mina puts "Mina" in process.argv[2]. Every item is text, so convert numbers with Number().

Learn more

npm audit

npm's check of installed packages for known security problems

After npm install, npm runs a short security check (audit) and reports how many installed packages have known vulnerabilities and how serious they are. npm audit shows the details, and npm audit fix upgrades what it can without breaking version rules. Not every warning affects your project, but read the high and critical ones.

Learn more

@latest

The npm tag that means "the newest published version"

Adding @latest after a package name asks npm for the version currently marked as latest. npm install -g firebase-tools@latest updates a global tool, and npx create-vite@latest makes sure a starter tool is the newest one rather than an older copy in the cache. You can also write an exact version, such as prettier@3.

Learn more

npm prefix

The npm setting for where global packages are installed

npm's prefix is the folder that holds globally installed packages and their commands. If it points to a system folder such as /usr/local, npm install -g fails with EACCES because you lack permission. Instead of using sudo, use nvm or move the prefix into your home folder and add its bin folder to PATH.

Learn more

npm registry

The online store of JavaScript packages that npm downloads from

The npm registry (registry.npmjs.org) holds millions of published JavaScript packages. npm install and npx fetch packages from it and keep a copy in a cache. Anyone can publish, so check a package's name, author and downloads before running it. It is a store of packages, not a Git repository.

Learn more

.nvmrc

A file that names the Node.js version a project uses

An .nvmrc file sits in a project folder and holds one line: a Node.js version such as 22. Anyone who opens the project runs nvm use and gets the same version, so "it works on my computer" problems shrink. nvm install with no number installs the version the file names.

Learn more

Package manager

A tool that finds, installs, updates and removes software

A package manager is an app store you use with typed commands. It downloads a program together with everything it needs, keeps track of versions and removes it cleanly. Operating systems have their own (apk on Alpine, apt on Ubuntu, Homebrew on macOS, winget on Windows), and languages have theirs (npm for JavaScript, pip for Python).

Learn more

Scaffolding

Automatically creating the starting skeleton of a new project

Scaffolding tools ask a few questions and then create the folders, settings files and sample code a new project needs, so you start from something that already runs. npx create-vite@latest and flutter create are common examples. The generated files are only a start; you change and delete them freely.

Learn more

Caret (^) version range

^4.17.21 means "this version or a newer compatible one"

npm versions have three parts, major.minor.patch. A caret in package.json, as in ^4.17.21, allows any version from 4.17.21 up to, but not including, 5.0.0, because a new major number may break things. The exact version that got installed is written in package-lock.json, and npm ci installs exactly that.

Learn more

--depth 1

A git clone that downloads only the latest version, not the history

A normal git clone copies every commit a project has ever had. git clone --depth 1 takes only the last one, so it is much faster and smaller, which is ideal when you just want to read or run the code. The catch: you cannot look at or go back to older commits until you fetch the rest with git fetch --unshallow.

Learn more

Hash

A short fingerprint computed from content; new content, new value

A hash function turns any amount of data into a short, fixed-length string. The same input always gives the same hash, and changing even one letter gives a completely different one. So a hash shows quickly whether a file has changed. Git names every commit by a hash, which is why one commit hash points to exactly one version of the code.

Plain text

Text with only characters — no fonts, colours or hidden formatting

A plain text file holds nothing but characters, which is why code, HTML and settings files must be saved as plain text. Word processors add hidden formatting that breaks code, so in TextEdit choose Format → Make Plain Text first. In security, plaintext also means data that is not encrypted, as with HTTP instead of HTTPS.

Logic

The rules and steps a program follows to decide and act

A program's logic is its decision-making: in what order things happen, which conditions are checked and what happens in each case. "Game logic" decides who scored and when the round ends; "tool logic" decides what a tool does with its input. Calling AI a machine of logic means it follows computed steps, without feelings or intentions.

Permission

What a person or program is allowed to read, change or run

A permission is a right to do something: read a file, change it, run a command, use the camera or post on someone's behalf. Files have permissions, phone apps ask for them, and AI agents get them from you: which folders they may edit and which commands they may run without asking. Give only what the task needs; it is easier to add a permission than to undo damage.

Linter

A tool that automatically finds mistakes and rule breaks in code

A linter reads code without running it and points out likely bugs and style problems: a variable that is never used, a missing quote, an unsafe pattern. Running it is called linting, or just lint, as in npm run lint. Because a machine gives a clear pass or fail, tests and lint are good finish lines for an AI agent working on its own. A linter finds problems; a formatter only rearranges layout.

Learn more

Formatter

A tool that rewrites code layout to one fixed style

A formatter rewrites spacing, line breaks, quotes and indentation so that all code in a project looks the same, whoever (or whatever) wrote it. It does not change what the code does. Running one automatically after every edit, for example with a Claude Code hook, keeps AI-written code tidy and makes diffs easier to review.

Learn more

Prettier

A popular formatter for JavaScript, CSS, HTML and Markdown

Prettier is an npm package that reformats code to one consistent style with almost no settings to argue about. It is usually installed per project as a dev dependency and run with npx. --write changes the files; --check only reports which files are not formatted, which suits automatic checks.

Learn more

LTS

Long-term support: a version that gets fixes for years

An LTS release is a version its makers promise to keep fixing, especially for security, for a long time. In Node.js, even-numbered versions (22, 24 …) become LTS and are supported for about 30 months, while odd ones are short-lived. When you learn or run a server, choose the LTS version.

Learn more

README

The first document of a project: what it is and how to use it

README.md sits in a project's top folder and explains what the project does, how to install and run it and where to go next. GitHub shows it on the front page of the repository, so it is the first thing visitors read. A goal like "the README explains how to run the app" is also a clear finish line for an AI agent.

GitHub issue

A note on GitHub for one task, bug or idea

An issue is a numbered page in a GitHub repository that describes one piece of work: a bug, a feature or a question. People comment on it, assign it, label it and close it when done. A pull request can close an issue automatically with "Fixes #12". Issue boards like GitHub Projects or Jira line issues up as cards.

Learn more

Extension

An add-on program that gives Chrome or VS Code new features

An extension is a small program installed inside another app to add features to it. Browser extensions such as Claude in Chrome come from the Chrome Web Store; editor extensions such as the Claude Code or Codex extension come from the VS Code Marketplace. An extension can read what you see in that app, so install only ones from publishers you trust.

Learn more

Error log

The record of errors a program writes while it runs

Programs write what went wrong, with times and details, into an error log: a file, the terminal or a service. The log usually holds more than the short message on screen, such as the line number and the chain of calls. When asking AI for help, give the relevant lines of the log together with how to reproduce the problem and what you expected, rather than pasting thousands of lines.

Platform

The base a program runs on, like a browser, a phone or a service

A platform is whatever a program is built to run on: an operating system (Android, iOS, Windows), a browser, a game console or an online service with its own tools, such as a game platform's SDK. Each platform has its own rules and limits, so stores ask for a separate build per platform. "Cross-platform" means one codebase that runs on several.

Software

All the programs that run on a computer, as opposed to the machine

Software is the general word for programs and the data they need: apps, games, websites, operating systems and AI models alike. Hardware is the part you can touch; software is the instructions it follows. Changing software is cheap and fast compared with changing hardware, which is why most new features arrive as updates.

Automation

Making a computer do a set task by itself instead of a person

Automation turns a job you repeat by hand into something a computer does on its own: a shell script that renames 500 files, a scheduled task that runs every Monday, a test suite that runs on every push, or an AI agent that collects a weekly report. The first run takes effort; every run after that is free. Automate only steps you understand, and check the results.

Programming language

An agreed language for writing instructions a computer can run

A programming language has exact words and grammar for telling a computer what to do. Python, JavaScript, Bash, C and Rust are examples; each suits different jobs, from quick scripts to fast engines. Unlike a human language there is no room for guessing: one missing bracket stops the program. AI writes code in these languages too, so reading one is still a key skill.

Version

A numbered edition of a program, model or file

Programs, packages and models change over time, and each released state gets a version, often written major.minor.patch like 3.12.4. A bigger first number usually means changes that can break old code. Many "it works for me but not for you" problems come from different versions, so check them first and pin them in files like requirements.txt or .nvmrc.

Constant

A named value that cannot change once it is set

A constant is like a variable that is locked after its first value. In Bash, readonly PI=3.14 makes any later change an error; in JavaScript you write const. Python has no real constants, so people write the name in capitals, MAX_SIZE = 100, to say "do not change this". Use constants for values that must stay the same everywhere.

Learn more

Declaration

Announcing a variable (and its kind) before using it

A declaration tells the language that a name exists, sometimes with its kind. Bash usually needs none: name=Mina creates the variable on the spot. Some kinds must be declared first, such as an associative array with declare -A. In languages like Java or C every variable is declared with its type before use.

Learn more

Definition

Creating a function or variable so it can be used later

A definition is where a name gets its content: the lines that make a function, or the first assignment of a variable. Code can only use a name after it is defined, so in a script function definitions come before the lines that call them. set -u makes Bash stop when a variable that was never defined is used, which catches typos.

Learn more

.NET

Microsoft's free platform for building and running programs

.NET is Microsoft's open-source platform for running programs written in C#, F# and other languages, on Windows, macOS and Linux. PowerShell is built on .NET, which is why its regular expressions follow .NET's rules: \d, \w, \s and named groups work. You do not need to know .NET to use PowerShell.

Learn more

Function call

Running a function or command by its name

Defining a function only describes the work; calling it makes it run. You call a function by writing its name with arguments, like print("hi") in Python or greet Mina in Bash, and it may hand back a result. A program is mostly calls to functions written by you and by others. When an AI model asks a program to run a tool, that is called a tool call.

Nesting

Putting one thing inside another of the same kind

Nesting means placing a structure inside one like it: a loop inside a loop, an if inside an if, a list inside a list, or a command substitution inside another, as in $(dirname $(pwd)). $( ) nests cleanly, which is one reason it is preferred over backticks. Deep nesting is hard to read, so more than three levels is a sign to split the code.

Learn more

switch statement

Other languages' many-way branch, like Bash's case

In JavaScript, C and Java, switch compares one value with a list of cases and runs the matching block, which is tidier than a long chain of if/else if. Bash does the same job with case … esac, and also lets each case be a pattern such as *.txt. In JavaScript, forgetting break makes the next case run too.

Learn more

Block

A group of lines that run together as one unit

A block is a chunk of code that belongs together: the lines between then and fi in an if, between do and done in a loop, or inside { } of a function. awk also has special BEGIN and END blocks that run before the first line and after the last. Indent the lines inside a block so you can see where it ends; every block that opens must close.

Learn more

camelCase

Naming by joining words and capitalizing each after the first

camelCase writes a name of several words with no spaces, starting each word after the first with a capital: userName, totalPrice. JavaScript uses it for variables and functions; Python prefers snake_case (user_name); file and URL names often use kebab-case (user-name). Follow the style the project already uses, because names must match exactly.

CHANGELOG

A file that records what changed in each version

A CHANGELOG (usually CHANGELOG.md) lists every version of a project with its date and its additions, changes and fixes, newest first. Tools that change fast, such as Claude Code, publish one so users can catch up on new features. It is written for people, unlike the commit history, which records every small step.

Learn more

Release notes

A short note telling users what is new in a version

Release notes announce a new version to its users: new features, important fixes and anything they must do, such as changing a setting. They are shorter and friendlier than a CHANGELOG and are often drafted from the commits since the last release. Writing them is a good repeated task to turn into a skill for an AI agent.

Command injection

An attack that sneaks a command into input so it gets run

Command injection happens when a program builds a shell command from text it does not control, and that text contains extra commands. A file name like a.txt; rm -rf ~ can turn a harmless command into a destructive one. Quote variables, never pass untrusted text to the shell, and with AI agents watch for commands that came from web pages or files rather than from you.

Feedback loop

A repeating cycle of trying, checking the result and fixing

A feedback loop gives whoever is working a quick signal of whether the last change was right, then lets them try again. For an AI agent the signal comes from tests, linters, type checks or a screenshot, so the agent can correct itself without a person in every step. The faster and clearer the signal, the better the work gets.

Worktree

A second working folder of the same repository on another branch

git worktree checks out another branch of the same repository into a separate folder, sharing one history. Each folder has its own files, so two sessions of Claude Code or Codex can work in parallel without overwriting each other. When the work is merged, remove the worktree. Each worktree needs its own dependencies installed.

Learn more

Parallel

Running several tasks at the same time, side by side

Parallel work means several jobs progress at once instead of one after another. With AI agents you can run several sessions or sub-agents in parallel, each on its own task. The danger is two workers editing the same file, so give each its own worktree or its own files, and merge the results at the end.

Learn more

GitHub Project

GitHub's board for managing issues as cards, tables or timelines

A GitHub Project collects issues and pull requests from one or more repositories into a single board. You can view it as a kanban board with columns, as a table or as a roadmap, and add your own fields such as priority. The gh command-line tool can create and move items, which is how an AI agent manages the board for you.

Learn more

Kanban

A board where task cards move through columns like To do → Done

A kanban board shows work as cards in columns, usually To do, In progress and Done. Moving a card to the next column shows progress at a glance, and limiting how many cards sit in In progress keeps a team from starting too much at once. The method comes from Toyota's factories; GitHub Projects, Trello and Jira all offer kanban views.

Learn more

Jira

Atlassian's issue and project tracker, common in companies

Jira is a paid web service from Atlassian for tracking issues, bugs and tasks with boards, sprints and reports. Many companies use it instead of GitHub issues. Through an MCP server, an AI agent such as Claude Code can read and update Jira tickets as part of its work.

JetBrains

The maker of IDEs such as IntelliJ IDEA, PyCharm and WebStorm

JetBrains is a software company whose IDEs are widely used by professional developers: IntelliJ IDEA for Java and Kotlin, PyCharm for Python, WebStorm for JavaScript, PhpStorm for PHP and others. When a page says "VS Code or JetBrains", it means these editors. Claude Code has a plugin for them, and Android Studio is built on IntelliJ.

Learn more

IDE

An integrated development environment: edit, run and debug in one app

An IDE (integrated development environment) puts a code editor, a way to run the program, a debugger, search, Git and often a terminal into one window. VS Code becomes an IDE with extensions; JetBrains products and Xcode are full IDEs out of the box. AI coding tools run inside IDEs as extensions or plugins, or next to them in the terminal.

Handler

Code set up to run when a particular event happens

A handler waits for one kind of event and runs when it occurs: a click on a button, a request to an address, a file being saved. In Claude Code, a hook's handler can be a shell command, an HTTP address, an MCP tool, an LLM prompt or a sub-agent, and it runs every time its moment arrives. The model does not choose whether to run it.

Global

Applying to every project on this computer, not just one

A global setting or install works everywhere on your computer; a local (project) one works only inside one project folder. npx skills add … -g installs a skill globally, and ~/.claude/CLAUDE.md holds global instructions read in every project. When the same thing exists in both places, check which one wins; for skills, Claude Code uses the global (personal) one.

Learn more

MIT License

A short open-source licence: use freely, just keep the notice

The MIT License lets anyone use, copy, change, sell and share the software, as long as the copyright notice and the licence text stay with it. It also says the software comes without any warranty. It is one of the most common licences on GitHub because it is short and asks so little. The licence text usually sits in a file named LICENSE.

Learn more

pdfplumber

A Python library that pulls text and tables out of PDFs

pdfplumber opens a PDF and gives you its text, words with their positions, and tables, page by page. It works on PDFs that contain real text; a scanned PDF is only a picture, so it needs OCR instead. A skill that tells an agent "use pdfplumber; OCR only for scanned PDFs" gives one clear default instead of a list of options.

Learn more

P0 · P1

Priority labels: P0 is the most urgent, then P1, P2 …

Teams sort problems by priority with short labels. P0 means "fix now": the service is down, data is being lost or there is a security hole. P1 is serious and should be fixed soon; P2 and lower can wait. Codex's PR review reports only P0 and P1 findings by default, so you see what matters without noise.

Learn more

Template

A ready-made frame where you only fill in the blanks

A template is a prepared shape with blanks: a report outline, a starter project, an email with {name} to fill in. Skills often ship templates in an assets/ folder so an agent produces the same structure every time. A chat template is a special case: the exact layout of roles and messages a model was trained on, which a runner must use for the model to answer well.

TODO

A to-do note: in code, a marker for work left to do

TODO means "still to do". Developers leave comments such as # TODO: handle empty input in code, and search for them later with grep. In issues and boards, a TODO checklist breaks one task into small steps that are ticked off one by one, which also shows progress. Old TODOs pile up easily, so turn the important ones into issues.

Repository root

The top folder of a Git repository

The repository root is the top folder of a project kept with Git — the one that holds the hidden .git folder. Claude Code looks for CLAUDE.md files and .claude/skills from the folder where you start it up to this root, and no higher. git rev-parse --show-toplevel prints its path.

git config

Setting the name and email GIT writes into every commit

Every commit records who made it, so right after installing GIT you tell it your name and email once with git config. With --global the setting applies to every repository on this computer; without it, only to the repository you are in. git config --list shows what is set now.

Learn more

Force push

A push that overwrites the remote history with yours

A normal push is refused when the remote has commits you do not have. git push --force pushes anyway and replaces the remote branch with your version, so commits that others pushed can disappear and teammates' copies stop matching. Use it only on your own branch that nobody else has pulled; --force-with-lease is safer because it stops if the remote changed since you last fetched.

Learn more

reflog

GIT's log of every place HEAD has been — where lost commits are found

git reflog lists, newest first, every commit that HEAD pointed to in your repository, including commits that no branch shows any more after a reset or rebase. If you lost work with git reset --hard, find the commit there and go back to it. It is kept only on your computer and old entries expire after a while (90 days by default).

Learn more

reset

Move the current branch back to an earlier commit

git reset moves your branch back so the later commits are no longer part of it. --soft keeps their changes staged, the default --mixed keeps them as unstaged changes, and --hard throws them away along with any uncommitted work. Use it only on commits you have not pushed; for shared commits use git revert.

Learn more

git add

Put changed files into the staging area for the next commit

git add picks which changes go into the next commit by copying them into the staging area. Only what you add is committed, so one commit can hold one logical change even when you edited many files. git add -p lets you choose part of a file, and git add . adds everything in the current folder.

Learn more

revert

Undo an old commit by adding a new commit that reverses it

git revert makes a new commit that does the opposite of an earlier one, so the change is gone but the history keeps both commits. Because nothing is rewritten, it is the safe way to undo a commit that was already pushed and pulled by others. It can cause a conflict if later commits touched the same lines.

Learn more

git status

Show what changed and where each file is in the three areas

git status tells you which branch you are on, which files changed but are not staged, which are staged for the next commit, and which are new and not tracked yet. It changes nothing, so run it whenever you are unsure — before add, before commit and before risky commands. Its output also suggests the command for the next step.

Learn more

git log

List the commits of the history, newest first

git log shows the commits of the current branch from newest to oldest, each with its ID, author, date and message. Options make it easier to read: --oneline gives one line per commit and --graph draws how branches split and merged. Press q to leave the list when it fills more than one screen.

Learn more

restore

Throw away changes that are not committed yet

git restore puts a file back to how it was in the last commit, erasing your uncommitted edits to it. With --staged it only takes the file out of the staging area and keeps the edits. The discarded edits were never saved in GIT, so they cannot be brought back — check with git status or git diff first.

Learn more

cherry-pick

Copy just one commit from another branch onto this one

git cherry-pick takes the change made by one commit, wherever it is, and applies it as a new commit on the current branch. It is handy when only one fix from a feature branch is needed now, for example on a release branch. The copy gets a new ID, so picking many commits this way makes the history harder to follow than a merge.

Learn more

stash

Put unfinished work aside for a moment and bring it back later

git stash takes your uncommitted changes, saves them in a separate pile and leaves the working folder clean, so you can switch branches for an urgent fix. git stash pop brings the changes back and removes them from the pile. New files that GIT does not track yet stay behind unless you add -u.

Learn more

git tag

A fixed name label such as v1.0.0 put on one commit

git tag pins a name to a commit, usually a version number, so you can always find the exact code you released. Unlike a branch, a tag does not move when you make new commits. An annotated tag (-a) also stores who made it, when and a message; tags are not pushed unless you push them.

Learn more

git init

Turn the current folder into a new GIT repository

git init creates a hidden .git folder inside the current folder, and from then on GIT can record that folder's history. Nothing is saved until you add and commit. Run it in the project folder itself: in your home folder it would track every file you own.

Learn more

git apply

Apply changes from a diff (patch) file to your files

git apply reads a diff — the lines to remove and add — and makes those edits to the files in your working folder without committing. It is how a change made elsewhere, such as by Codex in the cloud, lands in your copy. git apply --check tells you first whether the patch fits.

Learn more

Git LFS

A Git add-on that keeps large files outside the repository

Git LFS (Large File Storage) keeps big files such as model weights out of the normal Git history. The repository holds only a small pointer file, and the real file goes to separate storage. After running git lfs install once, you use git add, commit and push as usual.

Learn more Learn more about weights and parameters

Traceback

Python's error report that shows where an error happened

When a Python program fails, it prints a traceback: the chain of function calls that led to the error, from the outermost call down to the line that failed. Read it from the bottom — the last line names the error type and message, and the lines just above show the file and line number.

Learn more

uv

A fast tool that manages Python projects and packages

uv is a tool that creates a Python project, sets up its virtual environment and installs packages. It does the jobs of pip and venv together and is much faster. For example, uv add torch installs PyTorch into the project.

Learn more

async (asynchronous)

A way to keep working while waiting for something slow

Asynchronous code starts a slow task — such as waiting for a network reply — and handles other work until that task is done, instead of standing still. In Python you write it with async and await. A web server written this way can keep many connections open at once.

Learn more

.claude/agents/

The folder where Claude Code keeps sub-agent files

Each sub-agent is a Markdown file with a name, a description, the tools it may use and its instructions. Files in .claude/agents/ inside a project belong to that project and can be committed for the team; files in ~/.claude/agents/ are yours in every project. Claude Code reads the description to decide when to hand work to that sub-agent.

Learn more

~/.claude.json

Claude Code's personal settings file in your home folder

~/.claude.json holds Claude Code's own state for your user account: preferences, sign-in details, per-project data and MCP servers added with the local or user scope. It is different from the .claude folder and from settings.json. Edit it with care, or let commands such as claude mcp add change it for you.

Learn more

mcpServers

The settings key that lists MCP servers and how to start them

mcpServers is the key, in ~/.claude.json, a project's .mcp.json and similar files of other apps, that holds the list of MCP servers. Each entry has a name and tells the app how to start or reach the server: a command with arguments, or a URL. Where the entry sits decides where the server is available.

Learn more

.claude/skills/

The folder where Claude Code finds skills

Each skill is a folder with a SKILL.md file, and Claude Code looks for those folders here. .claude/skills/ inside a project is shared with the team through Git; ~/.claude/skills/ holds your personal skills for every project. Claude reads each skill's name and description and loads the full instructions only when a task needs them.

Learn more

.mcp.json

The project file that lists MCP servers the whole team shares

.mcp.json sits at the top of a repository and lists the MCP servers for that project. Because it is committed to Git, everyone who clones the project gets the same servers; Claude Code asks for approval before using them the first time. Running claude mcp add with --scope project writes to this file. Put secrets in environment variables, not in the file.

Learn more

.claude/settings.json

Claude Code's project settings file: permission rules, hooks and more

.claude/settings.json holds the shared settings of one project: permission rules (allow, ask, deny), hooks, environment variables and more. It is committed so the whole team works with the same rules. Personal changes go in .claude/settings.local.json, which is not committed, and settings for all your projects in ~/.claude/settings.json.

Learn more

@path import

Writing @path in CLAUDE.md to pull in another file's contents

In CLAUDE.md, a line such as @docs/architecture.md imports that file: its contents are read in at that spot, as if they were written there. A common use is @AGENTS.md, so Claude Code also follows the shared instructions other agents read. Imported files load into the context at the start of every session, so keep them short.

Learn more

CLAUDE.local.md

Personal project instructions for Claude Code that are not committed

CLAUDE.local.md sits in a project next to CLAUDE.md and holds instructions only for you — a local URL, your test data — and is listed in .gitignore so it is never committed. By default, if a CLAUDE.md, .claude/CLAUDE.md or CLAUDE.local.md exists in your working folder or above it, Claude Code does not read AGENTS.md (~/.claude/CLAUDE.md does not count). So if you rely on AGENTS.md, keep personal notes in ~/.claude/CLAUDE.md, or set Project instructions in /config to claude-md-and-agents-md to read both.

Learn more

Clipboard

Where the computer keeps what you last copied

When you copy text or a picture, the computer keeps it in the clipboard until you copy something else, and pasting puts it where your cursor is. A web page may read the clipboard only with your permission, so a browser can block a paste button — then click the box and press Ctrl+V (⌘V on a Mac) instead.

Ctrl+V (⌘V)

The keyboard shortcut that pastes what you copied

Ctrl+V pastes what is in the clipboard where the cursor is; on a Mac the same shortcut is ⌘V (Command+V). It pairs with Ctrl+C, which copies. In a terminal, Ctrl+C stops a running command instead, so many terminals paste with Ctrl+Shift+V.

Screenshot

A picture of what is on your screen

A screenshot saves what your screen shows as an image. On Windows, Win+Shift+S captures an area to the clipboard; on a Mac, Cmd+Shift+4 saves an area as a file, and adding Ctrl copies it instead.

Ctrl key

The Control key you hold with another key for a shortcut

Ctrl (Control) is a key at the bottom left of the keyboard. Held together with another key it gives a shortcut: in a terminal Ctrl+C stops a command. On a Mac many app shortcuts use Cmd instead, but terminal shortcuts still use Ctrl.

FizzBuzz

A classic practice problem: count up, saying Fizz, Buzz or FizzBuzz

FizzBuzz is a well-known practice problem: count from 1 and print each number, but print Fizz for multiples of 3, Buzz for multiples of 5 and FizzBuzz for multiples of both. It practices a loop, if conditions and the remainder operator `%`. A common mistake is checking 3 before 15 — then 15 prints only Fizz, so check the "both" case first.

Learn more

TextEdit

The text editor that comes with macOS

TextEdit is the simple text editor built into every Mac. By default it saves styled text (RTF), which adds hidden formatting. To write HTML or code, first choose Format → Make Plain Text so the file contains only the characters you typed.

Learn more

Notepad

The plain-text editor that comes with Windows

Notepad is the simple editor built into Windows. It saves only plain text, which is what HTML and code files need. When saving a web page, set the file type to "All files" so Notepad does not add .txt to the end of the name.

Learn more

os.replace

Python's way to swap in a finished file in one step

os.replace(src, dst) renames the file src to dst, replacing dst if it exists. On the same drive the swap is atomic: other programs see either the old file or the new one, never a half-written file. So programs write to a temporary file first, then call os.replace.

Learn more

SONUB dictionary

Web

157 terms

Browser console

A panel that lists a web page’s errors and messages

The browser console is a panel of the browser’s developer tools where a web page’s JavaScript writes its errors and messages. When an app shows a blank screen or a button does nothing, the console usually says why. In SONUB’s vibe coding, the console tab next to the preview collects these messages for you.

Learn more

HTML

The language that says what is on a web page

HTML marks up the content of a page: this is a heading, this is a paragraph, this is a picture, this is a link. It describes meaning and structure, not looks — colour and layout are CSS's job. Every page you open, including this one, arrives at your browser as HTML.

Learn more

CSS

The rules that decide how a page looks

CSS takes the bare content that HTML describes and gives it colour, spacing, type and layout. Keeping the two apart means the same page can be restyled, or shown differently on a phone and a desktop, without rewriting the content. When a site suddenly looks unstyled, its CSS usually failed to load.

Learn more

JavaScript

The language that makes a web page do things

If HTML is the content and CSS the appearance, JavaScript is the behaviour: it reacts to clicks, fetches new data, and changes the page while you are looking at it. Every browser can run it, which is why it became the language of the web. Despite the name it has nothing to do with Java.

Learn more

HTTP

The request-and-answer rules browsers and servers speak

HTTP is the agreed format in which your browser asks a server for something and the server answers. Each exchange stands alone: a request goes out, a reply comes back, and the connection forgets you. HTTPS is the same thing wrapped in encryption, which is why the padlock matters whenever you type a password.

URL

The full address of one thing on the internet

A URL is the address you see in the browser bar, and each part of it means something: the protocol, then the site, then the path to the exact page. Reading it is a small safety skill — the part just before the first single slash is the real site, which is how you spot an address pretending to be your bank.

Browser

The program that fetches web pages and draws them

Chrome, Safari, Firefox and Edge are browsers: programs that ask a server for a page, then turn the HTML, CSS and JavaScript that come back into what you see. They also run that code, which is why a web page can behave like an app. The browser is the most-used program on most people's devices, and most people never think about it.

Learn more

Domain name

A readable name for a server's address on the internet

Computers find each other by numeric IP addresses, which are hard to remember. A domain name such as example.com is a name you rent from a registrar and point at an IP address using DNS. It is also what an HTTPS certificate is issued for, so a real certificate needs a real domain name.

Learn more

DNS

The internet's phone book that turns names into IP addresses

DNS (Domain Name System) answers the question "which IP address is example.com?" Before a browser can connect anywhere, it asks DNS. You set the answer for your own domain with records such as an A record. A change can take minutes to hours to reach everyone, because answers are cached along the way.

Learn more

React

A JavaScript library for building web pages out of components

React lets you build a page from small reusable pieces called components, each with its own look and behaviour, and redraws only what changed when the data changes. A React project needs a build step: tools such as Vite turn it into ordinary HTML, CSS and JavaScript files that any web server can serve.

Learn more

DevTools

The browser's built-in panels for looking inside a page

DevTools are the developer tools built into Chrome and other browsers. They show a page's HTML, every request it sends with its headers and response, the cookies and caches it keeps, and errors from its scripts. Open them with F12, or right-click the page and choose Inspect. Changes you make there are not saved; reloading the page puts everything back.

Learn more

Status code

The three-digit number that says how a request went

Every HTTP response starts with a status line, and in it is a three-digit status code. The first digit gives the kind: 2xx success, 3xx look elsewhere, 4xx a problem with the request, 5xx a problem on the server. Read it first: a 404 means the path is wrong, not that the server is down.

Learn more

Redirect

A reply that sends the browser on to another address

A redirect is a response that says "what you want is over there". It carries a 3xx status code, such as 301 for a permanent move, and the new address in the Location header. Browsers follow it on their own, but curl does not unless you add -L. Sites use redirects to send http visitors to https and to keep old links working.

Learn more

Cache

A nearby copy kept so it need not be fetched again

A cache is a saved copy of something that was slow to get, kept close by so the next time is fast. Browsers cache images and files, servers cache pages, and an AI model keeps a KV cache of earlier tokens. The catch is that a copy can be out of date: if a site still looks old after a change, a reload that skips the cache often fixes it.

Endpoint

One address of an API that you can call

An endpoint is one specific URL of an API that does one job, such as reading one user's details. The API is the whole menu; each endpoint is one dish on it, usually combined with an HTTP method like GET or POST. Calling an endpoint with curl before writing any app code shows you exactly what comes back.

Learn more

WebSocket

A connection that stays open for two-way messages

Plain HTTP is one request, one response, then done. A WebSocket starts as an HTTP request and then turns into a connection that stays open, so the server and the browser can each send messages whenever they like. That suits chat, live scores and online games, where the server has to push updates without being asked.

Learn more

Streaming

Sending a response in pieces as it is produced

Streaming sends a response in small pieces as soon as each is ready, instead of waiting for the whole thing. AI chat services often stream text over HTTP with SSE (server-sent events), which is why an answer seems to type itself out. The size of each piece is a product choice — some services send whole sentences rather than single tokens — and the pace says nothing about anyone typing or thinking.

Learn more

Tag

A label in angle brackets that marks part of a page

An HTML tag is a label written in angle brackets, such as <p> or <a>, that tells the browser what a piece of content is. Most come in pairs: an opening tag and a closing tag with a slash, with the content between them. A few, such as <img> and <br>, stand alone. Tags are what you type; the browser builds elements from them.

Learn more

Element

One piece of a page, from its opening to its closing tag

An element is one piece of a page: the opening tag, the closing tag and everything between them. Elements sit inside other elements, so a whole page forms a tree, which is exactly what the Elements panel in DevTools shows. A tag is what you type; the element is what the browser builds from it and draws on the screen.

Learn more

Attribute

Extra information written inside an opening tag

An attribute adds information that a tag name alone cannot carry. It goes inside the opening tag as name="value", such as the address of a link or the file of an image. Common ones are href, src, alt, id and class. alt matters more than it looks: screen readers read it aloud to people who cannot see the image.

Learn more

HTTP request

The message a client sends to ask a server for something

An HTTP request is the plain-text message a browser or curl sends to a server. Its first line names the method, the path and the protocol version, such as GET / HTTP/1.1. Headers follow, one per line, then a blank line, and sometimes a body carrying data. The server reads it and sends back a response.

Learn more

HTTP response

The message a server sends back to a request

An HTTP response is the server's answer to a request. It starts with a status line such as HTTP/1.1 200 OK, then headers like Content-Type that say what kind of content follows, then a blank line, then the content itself: an HTML page, an image or JSON data. That blank line is the only thing separating the headers from the content.

Learn more

HTTP header

A Name: value line of extra information in a message

Headers are the lines after the first line of an HTTP request or response, each written as Name: value. They carry information about the message rather than the content itself: which site you want (Host), what kind of content this is (Content-Type), cookies, your preferred language, where a page has moved (Location). A blank line ends the headers.

Learn more

HTTP method

The verb at the start of a request, such as GET or POST

The method is the first word of an HTTP request and says what the client wants done. GET asks for something and should not change anything; POST sends data, such as a filled-in form or a new post. Others include PUT, PATCH and DELETE, used mostly by APIs. The Network panel in DevTools shows the method of every request.

Learn more

Laravel

A popular framework for building web services in PHP

Laravel is a free, open-source PHP framework. It gives a web service the parts almost every site needs: routes that map addresses to code, a database layer, logins, middleware, email and queues, so you write only your own logic. SONUB itself is built with Laravel and runs in a Docker container behind a Caddy web server.

GET

The HTTP method that asks the server to send something back

GET is the most common HTTP method: the browser sends one every time you open a page or load a picture. It only asks for data and should not change anything on the server, so it is safe to repeat and its answer can be cached. Extra details go in the address after a question mark, which is why a password must never be sent with GET.

Learn more

POST

The HTTP method that sends data for the server to handle

POST carries data in the body of the request: a filled-in form, a new comment, an uploaded file or JSON for an API. Unlike GET, it usually changes something on the server, such as saving a new post. That is why a browser warns you before sending a form again when you reload the page.

Learn more

PUT

The HTTP method that replaces what is at an address

PUT sends a complete new version of something and asks the server to store it at that address, replacing what was there. Sending the same PUT twice gives the same result as sending it once. It is used mostly by APIs, not by ordinary web pages.

Learn more

PATCH

The HTTP method that changes only part of something

PATCH sends only the parts you want to change, such as a new nickname, and leaves the rest as it is. PUT replaces the whole thing; PATCH is a small correction. Like PUT and DELETE, it is used mostly by APIs.

Learn more

DELETE

The HTTP method that asks the server to remove something

DELETE asks the server to remove what is at the address, such as a post or a file. The server decides whether you are allowed, so a real API first asks you to log in or send a key. A plain link in a web page cannot send DELETE; program code and tools like curl do.

Learn more

Content-Type

The header that says what kind of content follows

Content-Type is an HTTP header that tells the receiver how to read the body: text/html for a web page, application/json for data, image/png for a picture. It can also name the character encoding, as in charset=utf-8. If it is wrong, a browser may show a page as plain text or garble the letters.

Learn more

Host header

The request header that names the site you want

Host is a request header that carries the site name from the address, such as sonub.com. One server at one IP address can run hundreds of sites, and the Host header is how it tells which one you want. Since HTTP/1.1 every request must include it.

Learn more

charset

The part of a header that names the text encoding

charset (character set) tells the reader which encoding turns the stored bytes back into letters. Today it is almost always utf-8. If it is missing, the browser has to guess, and Korean or other non-English text can turn into broken symbols.

Learn more

User-Agent

The request header in which the browser names itself

User-Agent is a request header in which the client describes itself: which browser, which version, which operating system. Servers use it for statistics or to work around a browser's bugs. It is easy to fake, so a server must never trust it for security.

Learn more

Protocol

The agreed rules two programs follow to talk

A protocol is a set of rules both sides agree on in advance: who speaks first, in what format, and what each reply means. HTTP is the protocol of the web and SSH is the protocol for remote terminals. Because the rules are shared, programs written by different people can still understand each other.

Learn more

Angle brackets

The < and > signs that wrap an HTML tag name

Angle brackets are the less-than and greater-than signs, < and >. In HTML every tag sits between them, so the browser knows that word is an instruction and not text to show. A closing tag adds a slash: </p>.

Learn more

aria-

Attributes that describe an element to assistive tools

Attributes whose names start with aria- (such as aria-label or aria-hidden) tell screen readers what an element is or what state it is in. They change nothing on screen; they only add meaning for people who cannot see the page. Use a fitting HTML tag first — aria- is for what the tag alone cannot say.

Learn more

alt

The attribute that describes a picture in words

alt is an attribute of the img tag that holds a short text description of the picture. Screen readers read it aloud, search engines use it, and the browser shows it when the picture fails to load. Describe what the picture shows; a purely decorative picture gets an empty alt="".

Learn more

<body>

The part of an HTML page that visitors actually see

body is one of the two main parts of an HTML document. Everything shown in the window — headings, text, pictures, buttons — goes between <body> and </body>. Information about the page, such as its title and character set, goes in head instead.

Learn more

head

The part of an HTML page that holds information about the page

head comes before body in an HTML document. It holds things about the page rather than the page itself: the title shown on the browser tab and in search results, the character set, and links to style files. Nothing in head is drawn in the window.

Learn more

class

An attribute that gives a name to a group of elements

class is an HTML attribute that puts elements into a named group. Many elements can share one class, and one element can have several, separated by spaces. CSS and JavaScript use the name to find the group, for example to colour every warning red.

Learn more

id

An attribute that gives one element a unique name

id is an HTML attribute that names exactly one element; no two elements on a page should share the same id. Scripts use it to grab that element, CSS can style it, and a link ending in #name jumps straight to it.

Learn more

div

A plain box tag that takes a whole line

div is an HTML tag with no meaning of its own. It groups other elements into a block that starts on a new line and stretches across the width, so CSS can place or style the group. Use it only when no meaningful tag (header, nav, section…) fits.

Learn more

span

A plain box tag that sits inside a line of text

span is an HTML tag with no meaning of its own that wraps a few words inside a line, without breaking the line. It exists so CSS or JavaScript can reach just that piece, for example to colour one word. If the words are important or emphasised, strong or em says that better.

Learn more

h1 to h6

The six heading tags that form a page outline

h1 to h6 are HTML heading tags. h1 is the main title, h2 a section, h3 a part of that section, and so on down to h6. They describe the outline of the document, which screen readers and search engines use to move around. They are levels, not font sizes — change the size with CSS.

Learn more

href

The attribute that holds the address a link opens

href is the attribute of the a tag that says where a link goes. It can be a full address (https://…), a path on the same site (/about) or a spot on the same page (#price). Without href, the a tag is just text that looks like a link but goes nowhere.

Learn more

src

The attribute that holds where a picture or script file is

src (short for source) is the attribute that tells the browser which file to load into an element: a picture for img, a script for script, a video for video. The browser sends a separate request for that file. A wrong src gives a broken picture or a script that never runs.

Learn more

script tag

The <script> part of HTML that holds or loads JavaScript

The script tag puts JavaScript into a page, either written between <script> and </script> or loaded from a file with src. The browser runs it while reading the page, so a script that touches elements usually goes at the end of body or uses defer.

Learn more

style block

The <style> part of HTML that holds CSS

A style block is CSS written inside a page between <style> and </style>, usually in head. It is handy for one small page; for a whole site the same rules go in a separate .css file that every page links to. Deleting it changes only how the page looks, not what it says or does.

Learn more

Quirks mode

The old-fashioned drawing mode a browser uses without DOCTYPE

When an HTML page does not start with <!DOCTYPE html>, browsers assume it is a very old page and switch to quirks mode, copying the odd behaviour of 1990s browsers so old sites still look right. Sizes and spacing then differ from the modern rules. Starting every page with the DOCTYPE line avoids it.

Learn more

Screen reader

A program that reads the screen aloud for people who cannot see it

A screen reader turns what is on the screen into speech or Braille, so blind and low-vision people can use a computer or phone. It relies on the HTML: headings to jump around, alt text for pictures, labels for buttons. A page built only from div boxes leaves it with little to say.

Learn more

Search engine

A service that collects web pages and finds them for you

A search engine (Google, Bing, Naver…) sends programs around the web to read pages, stores what it finds in a huge index, and ranks pages when someone searches. It reads HTML, not pictures: headings, the title and alt text tell it what a page is about.

Learn more

HTML form

The part of a page that collects input and sends it to a server

A form is the HTML element that gathers what a visitor types or picks — text boxes, check boxes, buttons — and sends it to a server, usually with a POST request. Sign-up, log-in and search boxes are all forms. The server must check what arrives, because anyone can send anything.

Learn more

file://

The address form for opening a file on your own computer

An address that starts with file:// points to a file on your own disk instead of a server, so the browser opens it without any network. It is the easiest way to try an HTML page. Some features need a real http:// or https:// origin and do not work this way, such as many requests made by JavaScript.

Learn more

DOM

The tree of elements a browser builds from HTML

The DOM (Document Object Model) is the tree of elements the browser builds after reading the HTML: html at the root, head and body under it, and so on. The screen is drawn from this tree, and JavaScript changes the page by changing the tree. DevTools shows the live DOM, which may differ from the HTML file once scripts have run.

Learn more

Elements panel

The DevTools panel that shows and edits the live HTML and styles

The Elements panel of the browser DevTools shows the page as a tree of elements, with the CSS rules applied to the one you pick. You can change text, attributes or styles on the spot and see the result at once. Nothing is saved — reload and it is gone, so it is a safe place to experiment.

Learn more

Network panel

The DevTools panel that lists every request a page makes

The Network panel lists each request the page sends — the page itself, styles, pictures, scripts, API calls — with its method, status code, size and time. Click one to read its request and response headers and body. It answers the first question of most bugs: did the server answer, and with what?

Learn more

Sources

The DevTools panel for reading and pausing scripts

The Sources panel shows the files the page loaded, mostly JavaScript. Click a line number to set a breakpoint: the next time the code reaches that line, the page pauses, and you can step forward line by line while watching the values of variables.

Learn more

Application

The DevTools panel that shows what a site stored in your browser

The Application panel shows what the site has saved on your machine: cookies, local storage, cache storage and service workers. You can read, edit or delete each item. When a site misbehaves only for you, clearing its stored data here is often the fix.

Learn more

Local storage

A small store where a site keeps data inside your browser

Local storage lets a website save short pieces of text in your browser, as key–value pairs, that stay after you close the tab. Unlike cookies, it is not sent to the server with every request. It is only for the same site, and anyone using that browser can read it, so passwords and keys do not belong there.

Learn more

Rendering engine

The part of a browser that turns HTML and CSS into pixels

The rendering engine is the core of a browser: it reads HTML and CSS, builds the tree of elements, works out sizes and positions, and paints the result on screen. Chrome and Edge use Blink, Safari uses WebKit and Firefox uses Gecko — which is why a page can look slightly different between them.

Learn more

Same-origin policy

The rule that stops sites reading each other's data

An origin is a scheme, host and port together, such as https://sonub.com. The same-origin policy lets a page freely read data only from its own origin. A script on another site cannot read your mail or bank page, even though your browser is logged in there. A server can allow chosen other origins with CORS headers.

Learn more

Chromium

The open-source base of Chrome, Edge and others

Chromium is an open-source browser project led by Google. Chrome, Microsoft Edge, Brave, Opera and Arc are all built on it and share its Blink rendering engine, so a page that works in one usually works in the others. Safari (WebKit) and Firefox (Gecko) are the main browsers not based on it.

Learn more

Pseudo-header

Special HTTP/2 headers that replace the first line and Host

HTTP/2 has no text request line. The method, path and site name travel as special headers whose names start with a colon: :method, :path and :authority (plus :scheme). DevTools shows them at the top of the request headers. They carry the same information as GET /path HTTP/1.1 and Host: in HTTP/1.1.

Learn more

Carriage return

The invisible character \r that HTTP puts before every line break

A carriage return (written \r) is an invisible character that once moved a typewriter back to the start of the line. HTTP requires every line to end with \r followed by a newline \n, together called CRLF. Many servers accept a bare \n, but tools that read HTTP line by line often have to strip the leftover \r.

Learn more

200

The status code that means the request succeeded (OK)

200 OK is the status code a server sends when everything went fine and the response holds what was asked for: the page, the picture, the JSON. It is by far the most common code. A 200 only says the server handled the request — the content itself can still be an error page someone wrote by hand.

Learn more

200s

The group of status codes that mean success

Status codes from 200 to 299 all mean the request worked. 200 OK is the usual one; 201 Created says something new was made (for example after a POST), and 204 No Content says it worked but there is nothing to send back. The first digit is enough to know the outcome.

Learn more

301

The status code that says a page has moved for good

301 Moved Permanently tells the client that the address has changed for good, and the new one is in the Location header. Browsers follow it automatically and remember it; search engines move their records to the new address. curl does not follow it unless you add -L, so you see an almost empty reply.

Learn more

308

A permanent redirect that keeps the request method

308 Permanent Redirect means the same as 301 — the address moved for good — with one difference: the client must repeat the request with the same method and body. Under 301, a POST may turn into a GET when it follows the move. Caddy uses 308 when it sends http visitors to https.

Learn more

400s

The group of status codes that mean the request was at fault

Status codes from 400 to 499 say the problem is on the client side: a wrong address, a missing log-in, a request the server will not accept. Sending the same request again will not help — something in it has to change. The most common are 400 Bad Request, 401, 403 Forbidden and 404 Not Found.

Learn more

404

The status code that says the requested path does not exist

404 Not Found means the server is working but has nothing at that path: a typo in the address, a deleted page, or a file in the wrong folder. It is the most famous error code on the web. In a single-page app served by Caddy, refreshing a deep link gives 404 unless the server is told to fall back to index.html.

Learn more

500s

The group of status codes that mean the server failed

Status codes from 500 to 599 say the request was fine but the server broke while handling it: a bug in the code, a database that is down, a program behind a reverse proxy that does not answer. The person running the server has to fix it, and the details are in the server's log, not in the browser.

Learn more

Blank line

The empty line that separates HTTP headers from the body

An HTTP message is a start line, some header lines, one blank line, then the body. The blank line — just \r\n on its own — is the only border between headers and content, so a server that forgets it sends a broken reply. In an HTML file, by contrast, blank lines do nothing: the browser ignores them.

Learn more

Compression

Shrinking a response before sending it so it arrives faster

HTTP compression squeezes a response — HTML, CSS, JavaScript, JSON — before it is sent, and the browser unpacks it on arrival. The browser lists what it can unpack in the Accept-Encoding header, and the server names the method it used (gzip, br, zstd) in Content-Encoding. Text often shrinks to a fraction of its size; pictures and videos are already compressed and gain little.

Learn more

Location header

The response header that holds the new address for a redirect

Location is an HTTP response header that carries an address. With a redirect (301, 302, 307, 308) it says where the client should go instead; browsers follow it on their own. After a POST that creates something (201 Created) it can point to the new item.

Learn more

Request line

The first line of an HTTP request: method, path and version

Every HTTP/1.1 request starts with a request line of three parts separated by spaces: the method (GET, POST…), the path (/learn) and the protocol version (HTTP/1.1). Everything else — headers, body — follows it. A simple server only needs to read this one line to know what to send back.

Learn more

Protocol version

Which edition of HTTP a message uses: HTTP/1.1, 2 or 3

HTTP has several versions. HTTP/1.1 (1997) sends plain lines of text that you can type by hand. HTTP/2 (2015) sends the same meaning as binary frames and many requests at once over one connection. HTTP/3 (2022) does the same over QUIC on UDP instead of TCP. The methods, headers and status codes mean the same in all of them.

Learn more

Message body

The actual content that comes after the HTTP headers

The body is the part of an HTTP message after the blank line: the HTML of a page, the bytes of a picture, the JSON of an API answer, or the form data of a POST. The headers describe it — Content-Type says what it is, Content-Length how long. A GET request usually has no body.

Learn more

Routing

Sending each request to the right handler by its address

Routing decides what answers a request, based on its path or domain: /about returns one page, /api/… goes to a program, files.example.com goes to a file server. Web frameworks have a route list in code; servers like Caddy route by path and host in their config. A server with no routing answers every address the same way.

Learn more

Subdomain

A name added in front of a domain, such as teacher.sonub.com

A subdomain is an extra name put in front of a domain you own: teacher.sonub.com and student.sonub.com are subdomains of sonub.com. Each can point to a different server or app, and creating one costs nothing beyond a DNS record. www is a subdomain too, by tradition.

Learn more

Timeout

A limit after which a program stops waiting for an answer

A timeout is how long a program waits before giving up — on a connection, a reply or a whole request. Without one, a client can hang forever on a dead server, and a server can be tied up by slow visitors. When it runs out you get an error instead of an answer, which is usually better than waiting forever.

Learn more

/health

An address that answers whether a server is up

A health check is a small address, often /health, that a server answers quickly with "I am running" (and maybe a few facts). People, scripts and monitoring tools call it to see whether the service is alive before sending real work, or to restart it when it stops answering.

Learn more

Encryption

Scrambling data so that only someone with the key can read it

Encryption turns readable data into scrambled bytes using a key; only someone with the right key can turn it back. HTTPS encrypts everything between your browser and the server, so people on the same Wi-Fi or along the route see only noise. It hides the content, not the fact that you visited the site.

Learn more

TLS

The layer that encrypts HTTPS and proves the server

TLS (Transport Layer Security) is the protocol that puts the S in HTTPS. At the start of a connection the two sides check the server's certificate and agree on secret keys, then everything that follows is encrypted and protected from tampering. SSL is its old, retired predecessor, which is why people still say "SSL certificate".

Learn more

TCP

The connection rule that delivers data complete and in order

TCP (Transmission Control Protocol) opens a connection between two computers and makes sure every byte arrives, in the right order, resending anything lost on the way. HTTP/1.1 and HTTP/2 run on top of it. The checking costs a little time, which is why fast games sometimes choose UDP instead.

Learn more

UDP

A fast way to send data without checking it arrived

UDP (User Datagram Protocol) sends small packets without opening a connection and without checking that they arrive or stay in order. That makes it quick, which suits voice calls, live video, online games and DNS. Anything that must not be lost has to be checked by the program itself, or by a layer on top such as QUIC.

Learn more

QUIC

The transport under HTTP/3, built on UDP

QUIC is a transport protocol that runs on UDP and builds TLS encryption into the connection itself. Opening a connection takes fewer round trips than TCP plus TLS, and one lost packet does not hold up every other request. HTTP/3 is HTTP carried over QUIC.

Learn more

rUDP

Reliable UDP: UDP plus delivery checks, used by real-time games

rUDP (reliable UDP) adds what plain UDP lacks — acknowledgements, resending and ordering — but only for the messages that need it. A game can send position updates as fast UDP packets that may be dropped, and send "player bought an item" reliably on the same connection. It is a family of game-library techniques, not one fixed standard.

Learn more

Network round trip

One trip of a request to another machine and its answer back

A round trip is the time for a message to travel to another machine and the reply to come back. Each one adds delay — a few milliseconds nearby, much more across the world — so programs that need many small answers feel slow. Keeping code close to its data, or batching requests, cuts the number of trips.

Learn more

Secure context

A page opened over HTTPS, allowed strong features

Browsers allow some powerful features only in a secure context: a page loaded over HTTPS (or from localhost while developing). Microphone and camera, service workers for offline play, and asking for storage that will not be cleared are examples. On plain http:// those features are simply missing.

Learn more

Service worker

A script that runs behind a page to handle caching and offline use

A service worker is a JavaScript file that the browser runs separately from the page. It sits between the page and the network, so it can answer requests from a cache — letting a site or game open offline — and receive push messages. It only works in a secure context (HTTPS).

Learn more

Web app manifest

A JSON file that makes a web app installable

A web app manifest is a JSON file with the app's name, icons, colours and start address. When a page links to it, browsers can offer to install the site on the home screen, where it opens in its own window like an app. On Cadeplay the platform adds it for you, so a game should not ship its own.

Learn more

PWA

A web app that can be installed on the home screen like an app

A PWA (Progressive Web App) is a website built to behave like an installed app: it has a web app manifest so it can be added to the home screen, and usually a service worker so it opens fast and works offline. There is no app store review — players install it straight from the browser.

Learn more

Web app

A program that runs in the browser and is used like an app

A web app is a website that does a job rather than just showing pages: mail, documents, a dashboard, a game. It runs in the browser, so there is nothing to install and every visitor gets the newest version at once. Behind it there is usually a server that stores the data.

Learn more

WebGL

The browser technology for drawing 2D and 3D graphics with the GPU

WebGL lets JavaScript in a web page use the graphics card to draw 2D and 3D scenes quickly, without plug-ins. Game engines and libraries such as Three.js, Babylon.js, PixiJS and Phaser use it under the hood, and Unity can export a game as a WebGL build that runs in the browser.

Learn more

Canvas

A screen area that code draws on, pixel by pixel

A canvas is a rectangle on the screen that a program paints on directly — shapes, pictures, text — instead of placing ready-made elements. Most 2D web games draw every frame onto an HTML canvas, and game frameworks such as Flutter Flame also draw the game into a canvas surrounded by normal widgets.

Learn more

Cadeplay

A web game platform where you publish a game by uploading one zip

Cadeplay (cadeplay.com) is a portal for HTML5 games played straight in the browser with no install. You upload the game as a single zip, it is checked automatically, and it gets its own permanent address (name.cadeplay.com). The platform also adds cloud saves, leaderboards and an install manifest, so the game does not have to build them.

Learn more

Cadeplay console

The admin site where developers manage games

A developer console is the admin website of a platform, where you sign in as a developer to register a game or app, upload builds, read reports and create access tokens. The Cadeplay console and Google's Play Console are examples. Whatever you can click there can often also be done through the platform's API.

Learn more

Host label

The name at the very front of an address, as in name.cadeplay.com

A host label is one dot-separated piece of a host name; here it means the first one, the name you choose for your game in name.cadeplay.com. Labels may use letters, digits and hyphens. On Cadeplay it becomes permanent the first time the game is published, so choose it before going public.

Learn more

Base path

The build setting for where file addresses start

Build tools such as Vite have a base setting that is put in front of every file address in the built game or site. If it is an absolute path like /, the files are looked up at the top of the domain and break when the game lives somewhere else. A relative base (./) makes the same build work on your computer and on a host like Cadeplay.

Learn more

Padlock

The address-bar sign of a trusted HTTPS page

Browsers show a sign next to the address — traditionally a padlock — when the page arrived over HTTPS with a valid certificate. It means the connection is encrypted and the site really is that domain; it does not mean the site is honest. When a new server has no valid certificate yet, the sign turns into a warning instead.

Learn more

CDN

A network of servers that hands out copies of files from nearby

A CDN (Content Delivery Network) keeps copies of a site's files — pictures, scripts, whole pages — on many servers around the world and answers each visitor from the closest one. Pages load faster and the main server has less work. Cloudflare, Fastly and Amazon CloudFront are well-known CDNs.

Learn more

Component

A reusable building block that a page is made of

A component is a piece of user interface — a button, a card, a menu — written once and used many times, with its own structure, look and behaviour. Libraries such as React build whole pages out of components, passing each one the data it should show. Fixing a component fixes it everywhere it is used.

Learn more

Authentication

Checking who a user or program is

Authentication answers "who are you?": a password, a log-in with Google or Apple, a code sent to your phone, or a token a program sends with each request. It comes before authorisation, which decides what that person may do. When a push or API call is rejected for authentication, the credentials are missing, wrong or expired.

Learn more

Layout

How the parts of a screen are arranged

A layout decides where each part of a screen goes: header, menu, content, sidebar, footer, and how they move on wide and narrow screens. On the web it is written in CSS. In site code "layout" can also mean a shared template — the frame of header and menu that every page is put into.

Learn more

Aspect ratio

The ratio of a picture's width to its height

The aspect ratio says how wide a picture or screen is compared with its height, written as width : height. 16:9 is a widescreen video, 1:1 a square, 9:16 a phone held upright. Changing it without cropping squashes or stretches the picture, so when you ask an AI to edit an image, say the ratio you want.

Learn more

Full-stack

Covering everything from the screen to the server

Full-stack means covering every layer of a product: the part users see (front end), the server and database behind it (back end), and often deployment. A full-stack developer can build a whole app alone; a full-stack project contains all of those pieces, not just one.

Learn more

Personal access token

A token used instead of a password to sign in to GitHub

A personal access token is a long secret string that GitHub creates for you, used where a password would go — for example when git push asks you to sign in. You choose what it may do and when it expires, and you can revoke it at any time. Treat it like a password: never paste it into a chat or commit it.

Learn more

Handshake

The opening exchange where two sides agree on how to talk

A handshake is the first few messages of a connection, in which both sides check each other and agree on settings — a version, abilities, keys — before real work starts. TLS starts with one, and MCP has used an initialize request and reply. If the handshake fails, nothing else is sent.

Learn more

HTML validator

A tool that checks whether HTML follows the rules

An HTML validator reads a page and lists every place where it breaks the HTML rules: a tag that is never closed, an attribute in the wrong place, a duplicated id. Browsers quietly guess around such mistakes, so a page can look fine and still be broken for screen readers or another browser. The W3C runs a free one at validator.w3.org.

Learn more

Input validation

Checking that what a user typed is allowed before using it

Input validation checks each value a user sends — is the email shaped like an email, is the age a number, is the name not too long — and refuses bad ones with a clear message. Checks in the browser are a convenience; the server must check again, because anyone can send a request without the page.

Learn more

JSON-RPC

A simple rule for calling functions by sending JSON messages

JSON-RPC is a small standard for remote calls written in JSON. A request names a method and its params and carries an id; the reply carries the same id with a result or an error. A message without an id is a notification and gets no reply. MCP uses JSON-RPC 2.0 for every message.

Learn more

Notification

A one-way JSON-RPC message that expects no reply

In JSON-RPC, a notification is a message without an id. It tells the other side something happened — for example notifications/initialized in MCP, sent after the handshake — and the receiver must not answer it. Because there is no reply, the sender never learns whether it was handled.

Learn more

Local API

An API served by a program on your own computer

A local API is an API that a program on your own machine offers at an address like http://localhost:11434. Your app talks to it exactly as it would talk to a cloud API, but the requests never leave the computer: no internet and no paid key are needed. Model runners such as Ollama and llama.cpp work this way.

Learn more

Transport

The channel that carries MCP messages: stdio or HTTP

A transport is how MCP messages travel between client and server. With stdio, the client starts the server program on the same computer and they talk through standard input and output. With Streamable HTTP, the server runs at a web address and many users can connect. The messages are the same either way.

Learn more

Mobile first

Designing for the phone screen first, then widening

Mobile first means writing the layout for a narrow phone screen first and adding rules for wider screens on top. Most visitors arrive on phones, and a simple one-column page is easier to widen than a crowded desktop page is to squeeze. In CSS the wider rules go inside min-width media queries.

Learn more

Open standard

A shared rule anyone may read and use freely

An open standard is a specification published for anyone to read and implement without asking permission or paying. HTML, HTTP and JSON are open standards, which is why any browser can open any site. Agent Skills and MCP are open standards too, so one skill or server works in many AI tools.

Learn more

Specification

The official document that says exactly how a technology must work

A specification (spec) is the official text that defines a technology precisely: what a valid message looks like, what each part means, what must happen in each case. Programs from different makers can work together because they follow the same spec. Specs can be updated, so a date or version number tells which one you follow.

Learn more

Static site

A website made of ready-made files served exactly as they are

A static site is just files — HTML, CSS, JavaScript, pictures — that the server hands out unchanged; nothing runs on the server for each visitor. That makes it fast, cheap and safe to host, often for free (Cloudflare Pages, GitHub Pages). Everything in it can be downloaded by anyone, so secrets must never be in it.

Learn more

URI

An identifier string that names a resource (URLs are one kind)

A URI (Uniform Resource Identifier) is a string that names something in a standard shape: a scheme, a colon, then the rest. Every URL is a URI that also says where to fetch the thing (https://…), but a URI can name things that are not web pages, such as mailto:me@example.com or an MCP resource like notes://shopping.

Learn more

Sign in with Apple

Logging in to apps and sites with an Apple account

Sign in with Apple lets people log in with their Apple Account instead of making a new password, and lets them hide their real email behind a relay address. Apple's App Store rules ask apps that offer another company's log-in, such as Google, to also offer a privacy-friendly option like this one, or the app can be rejected.

Learn more

Dashboard

A screen that gathers status and settings in one place

A dashboard is a page that brings the most important numbers, lists and settings of a service together on one screen, so you can see how things stand and act without hunting through menus. Admin pages of hosting services and your own study progress page are both dashboards.

3D

Graphics with width, height and depth that you can look around

3D graphics describe objects in three dimensions — width, height and depth — and a program draws them from a camera's point of view every frame, usually with the GPU. 2D games draw flat pictures instead. 3D takes far more work: models, lighting, cameras and a heavier engine.

Learn more

Screen sharing

Showing your computer screen live to someone else

Screen sharing sends a live picture of your screen — the whole screen, one window or one browser tab — to the other people in a video call. In an exam interview you share the entire screen, so the examiner can see everything you do and every program you open.

Learn more

Secret key

A key that must never be shown to others

A secret key is a value that proves who you are or locks data: an API key, a password-like token, the private half of a key pair, or a key two computers agree on to encrypt a connection. Anyone who sees it can act as you, so it lives in a .env file or a secret store — never in code, chats or screenshots.

Learn more

Security

Protecting systems and data from attacks and leaks

Security is everything done to keep systems and data safe: from strangers reading them, changing them or shutting them down. In everyday coding it means checking inputs, keeping secret keys out of code, using HTTPS, giving each program only the permissions it needs, and updating software. AI can write code fast, but checking its security stays a human job.

Learn more

WebAssembly

A compact binary format that runs fast programs inside the browser

WebAssembly (Wasm) is a binary format that browsers run at close to native speed, next to JavaScript. Programs written in C, C++ or Rust can be compiled to it. That is how a whole Python interpreter (Pyodide) or a small AI model can run inside a web page, with no install and no server doing the work.

Learn more

robots.txt

A file that tells search robots which parts of a site to visit

robots.txt is a plain text file at the top of a site (/robots.txt) that tells web crawlers which paths they may or may not visit. Well-behaved search robots read it first and follow it. It is a request, not a lock — it hides nothing, and anyone can read it.

Learn more

Search robot

A program that visits web pages one after another to collect them

A search robot (web crawler) is a program that fetches a page, follows its links to more pages, and stores what it reads — that is how search engines build their index. Good ones read robots.txt first and do not visit too fast. AI companies also run crawlers to collect training text.

Learn more

CAPTCHA

A test meant to tell people and bots apart

A CAPTCHA is a small challenge a site shows to check that a human is there: picking pictures with traffic lights, typing wobbly letters, or just ticking a box while the site checks how you behave. Sites use it against spam and automated sign-ups. Browser-driving AI tools are expected to stop and hand it to the person.

Learn more

Dark mode

A colour scheme with light text on a dark background

Dark mode shows light text on a dark background instead of dark on light. Many people prefer it at night, and on phones with OLED screens it can save battery. A site can follow the setting of the device through CSS, so every colour it uses needs a dark version that is still easy to read.

Learn more

Mock-up

A picture of a screen, drawn before it is built

A mock-up is a drawing of how a screen should look — layout, colours, text — made before the code exists, often in a design tool or as a screenshot. Builders compare the finished page with it. You can paste a mock-up image into an AI coding tool and ask it to build the page to match.

Learn more

Docusaurus

A tool that turns Markdown files into a documentation website

Docusaurus is an open-source tool, started at Meta, that builds a documentation website from Markdown files. It is built on React, adds search, versions and translations, and produces a static site you can host anywhere.

Learn more

MkDocs

A Python tool that builds a documentation site from Markdown

MkDocs is an open-source tool written in Python that turns a folder of Markdown files and one YAML settings file into a documentation website. It is often used with the Material for MkDocs theme, and the result is a static site.

Learn more

VitePress

A fast documentation-site tool built on Vite and Vue

VitePress is an open-source tool from the Vue team that builds documentation websites from Markdown. It uses Vite for very fast previews while you write and Vue for the pages, and produces a static site.

Learn more

Svelte

A web UI framework that compiles components ahead of time

Svelte is an open-source framework for building web interfaces from components, like React and Vue. The difference is that Svelte compiles each component into plain JavaScript before it ships, so the browser downloads less framework code. SvelteKit is the app framework built on it.

Learn more

Vue

A JavaScript framework for building screens out of components

Vue is an open-source JavaScript framework for building web interfaces from components, created by Evan You. A component keeps its HTML template, logic and style together, and the screen updates by itself when the data changes. It can be added to one part of a page or run a whole app.

Learn more

Keyboard focus

The screen element that currently receives keyboard input

Focus marks the one element on a page — a link, button or text box — that gets your keystrokes right now. Tab moves it forward, Shift+Tab back, Enter presses it. Browsers draw a ring around it; removing that ring leaves keyboard users lost, and returning focus to the right place after closing a popup keeps them on track.

Learn more

Anchor

A named spot in a page that a link can jump straight to

An anchor is a place inside a page with its own name, usually an element's id or a heading. A link that ends in #name opens the page and scrolls straight there. Markdown pages on GitHub give every heading an anchor automatically, which is how a glossary can link to one term.

Learn more

alert or confirm dialog

A small browser window that blocks the page until someone answers

alert() and confirm() are JavaScript calls that open a small box from the browser itself: alert shows a message with OK, confirm asks OK or Cancel. Until someone clicks, the page is frozen — scripts and automation tools included — which is why browser-driving AI tools ask you to close them by hand.

Learn more

OAuth

A standard for granting access without your password

OAuth is the standard behind buttons like "Connect your Google account". You log in on the real service's own page and approve what the app may do; the app then receives a token, not your password, and you can revoke it at any time. Remote MCP servers often use OAuth to sign you in.

Learn more

Server template

An HTML pattern the server fills with values before sending

A server template is an HTML file with blanks that the server fills in for each request — a name, a list of posts — before sending the finished page to the browser. Laravel uses Blade, Django and Flask use Jinja-style templates. The browser only ever sees plain HTML.

Learn more

Single-page app

A web app that redraws the screen without loading new pages

A single-page app (SPA) loads one HTML page and then uses JavaScript to redraw parts of the screen and change the address as you move around, fetching only data from the server. Moving between screens feels quick, but the server must send index.html for every app address, and tools that change the page must re-run after each redraw.

Learn more

Tooltip

A small box of explanation that appears when you point at something

A tooltip is a little box that pops up when you hover the mouse over a word or button, or focus it with the keyboard, and disappears when you move away. It holds a short hint. The popups on SONUB are a richer kind: a card with a meaning, an example and related terms.

Learn more

PayPal

An online payment service for sending money between accounts

PayPal is an online payment service: you link a card or bank account once, then pay other PayPal accounts. On SONUB it is the only way to pay class fees — the student pays on PayPal and the money goes straight to the teacher's PayPal business account. SONUB never holds the money. PayPal may charge its own fees under its own rules.

Learn more

PayPal business account

A PayPal account for receiving payments, connected with its Client ID and Secret

A PayPal business account is a PayPal account made for receiving payments. In Korea and the Philippines you can open one without a business registration number. On SONUB every teacher connects one: create a Live app in the PayPal developer dashboard and paste its Client ID and Secret in the Payment settings tab of your teacher profile. SONUB uses them only to create, confirm and refund class payments — the money goes straight to the teacher, and SONUB never receives or holds it.

Learn more

New tab

Another page opened inside the same browser window

A browser shows each open page in its own tab along the top of the window. Opening a link in a new tab keeps the page you were on, so you can come back to it.

Chrome

Google's free web browser

Google Chrome is a free web browser for computers and phones, built on the open-source Chromium project. It is one of the most widely used browsers. In the SONUB video classroom, recording a class in the browser needs Chrome or Edge on a computer.

Learn more

Edge

Microsoft's web browser that comes with Windows

Microsoft Edge is the web browser that comes with Windows. Like Chrome it is built on Chromium, so most sites work the same in both. In the SONUB video classroom, Chrome or Edge on a computer is needed to record a class.

Firefox

Mozilla's web browser

Firefox is a web browser that draws pages with the Gecko engine. It is open source and made by a non-profit foundation's company; like Chrome it has developer tools (F12).

Learn more

Safari

Apple's web browser

Safari is a web browser that draws pages with the WebKit engine. It is the default browser on Mac, iPhone and iPad, so a web page should also be checked in Safari.

Learn more

Brave

Brave Software's web browser

Brave is a web browser that draws pages with the Chromium engine. It blocks ads and trackers by default, and because it is built on Chromium, Chrome extensions and developer tools work much the same.

Learn more

Opera

Opera's web browser

Opera is a web browser that draws pages with the Chromium engine. It is made by a company that started in Norway and, being built on Chromium, its developer tools are almost the same as Chrome's.

Learn more

MDN

Mozilla's free reference for HTML, CSS and JavaScript

MDN Web Docs is a free website, run by Mozilla (the maker of Firefox), that explains web technologies such as HTML, CSS, JavaScript and browser APIs. Each page shows what a feature does, code examples, and which browsers support it. It covers all browsers, not just Firefox, so web developers use it as their everyday reference.

Learn more

index.html

The page file a web server sends when an address names only a folder

When an address ends at a folder, such as https://example.com/, most web servers (nginx, Apache, Caddy) look in that folder for a file named index.html and send it. That is why the home page of a simple site is usually index.html. If the file is missing, you get an error page or a file list instead.

Learn more

example.com

A domain name set aside for examples in documents

example.com, example.org and example.net are reserved so that books and guides can show addresses without pointing at anyone's real site. Nobody can register them. When a guide writes example.com, put your own domain in its place.

Learn more

SONUB dictionary

Infrastructure

144 terms

Server

A computer that waits for requests and answers them

A server is simply a computer whose job is to sit there, listen for requests and send back answers — pages, files, data. It is not a special kind of machine; an old laptop can be one. What makes it a server is the role it plays, and the fact that it is expected to stay on.

Learn more

Client

The side that asks — your browser, phone or app

In this pairing the client is whatever asks and the server is whatever answers. Your browser is a client; so is a phone app. The distinction matters because the two run in different places: code on the client is on the user's own device and can be inspected, which is why secrets such as API keys must stay on the server.

Learn more

Cloud

Renting someone else's computers instead of owning them

The cloud is not a place in the sky; it is other people's computers in data centres, rented by the hour. You get to start ten servers this afternoon and stop them tonight, paying only for what you used. The trade is control and cost predictability: your data sits on hardware you do not own, under someone else's terms.

Port

A numbered door through which a program talks to the network

One computer runs many network programs at once, and the port number says which one a message is for. A port can be held by only one program at a time. Web servers use 80 for http and 443 for https by default, which is why web addresses usually leave the number out.

Learn more

Reverse proxy

A server in front that passes each request to the right program behind it

A reverse proxy receives visitors' requests, forwards each one to an application listening on some internal port, and returns that application's answer. Visitors only ever talk to the proxy. It is how one machine hosts many sites on a single port 443, and it usually handles HTTPS so the applications behind it do not have to.

Learn more

Docker

A tool that runs programs in sealed, portable boxes

Docker packs a program with everything it needs into an image and runs it as a container, kept apart from the rest of the machine. The same container runs the same way on a laptop and on a server, which is why so many websites are deployed with it. It is not a virtual machine: containers share the computer's operating system kernel, so they start in about a second.

Learn more

Docker image

A frozen package that containers are started from

An image holds a program together with its files, libraries and settings, stored in layers and never changed while it runs. You download images from a registry such as Docker Hub, or build your own from a Dockerfile. One image can start any number of containers.

Learn more

Container

A running copy of a Docker image, in its own sealed box

A container is an image that is running. It has its own files, network and ports, separate from the computer and from other containers. When you delete it, everything it wrote inside itself is gone, which is why data you want to keep goes into a volume or a mounted folder.

Learn more

Deploy

Putting your app where other people can use it

To deploy is to take a program that works on your own computer and put it where other people can reach it: a server, a cloud service, or a platform such as Cadeplay. It usually means building, uploading and starting it, and every later change has to be deployed again. A first deployment is not the end of development; it is where honest feedback begins.

Hosting

Keeping a site or service running on a server

Hosting means running a website, game server or other service on a computer that stays on and can be reached from the internet. You can pay a hosting company to look after the machines, or self-host by running the software on a server you control. Self-hosting gives more control and less dependence on one company, but backups, updates and outages become your job.

Learn more

Backend

The server side of an app that users never see

The backend is everything that runs on servers behind an app or game: accounts, saved data, leaderboards, matchmaking and the database. The part on the user's screen is the client. A game backend is rarely one program; it is a server plus a database and often a cache, which is why tools such as Docker Compose start them together.

Learn more

VPS (virtual private server)

A small computer you rent in a data centre

A VPS is a share of a big server that behaves like your own computer: it has its own system, stays on day and night and can be reached over the internet. You manage it through SSH and usually pay for it by the month.

Learn more

SSH

A safe way to log in to another computer from your terminal

SSH (Secure Shell) connects your terminal to a computer somewhere else, such as a server, and encrypts everything in between. With an SSH key — a pair of files where only the public half goes on the server — you log in without a password, which is easier and safer.

Learn more

tmux

A terminal tool that keeps programs running after you disconnect

tmux opens sessions inside a terminal. You can leave a session (detach) and come back to it later (attach), even after logging out, and the programs in it keep running. That is how an agent keeps working on a server all night.

Learn more

Linux

A free operating system that runs most servers

Linux is a free, open-source operating system. Most web servers, cloud machines and Docker containers run on it, and Android is built on the Linux kernel. Its terminal uses the same kind of shell as macOS, so the commands you learn here mostly work on both; a few, such as sed -i or nc, take slightly different options.

localhost

A name that always means this same computer

localhost is a special name that points back to the computer you are using, usually at IP address 127.0.0.1. When you run a server on your own machine, you open it at http://localhost followed by its port, such as :8080. Nothing goes out to the internet, so nobody else can open your localhost address.

Learn more

IP address

The number that finds a computer on a network

An IP address is the number that identifies a computer on a network, such as 203.0.113.10, so that messages know where to go. People type domain names instead, and DNS turns the name into the IP address. A server needs a public IP address to be reached from the internet; 127.0.0.1 always means the computer itself.

Learn more

Socket

One end of a network connection inside a program

A socket is what a program opens to talk over a network: one end of a connection, tied to an IP address and a port. A server opens a socket on a port and waits; a client opens one and connects to it. On top of that, the two sides speak a protocol such as HTTP or WebSocket. The nc command opens a socket in a single line.

Certificate

A site's digital ID card that makes https safe

A TLS certificate is a small file that proves a domain really belongs to the server you reached, signed by a trusted certificate authority such as Let's Encrypt. Browsers check it before sending anything over https and warn you if it has expired or names a different domain. Certificates expire, so they must be renewed; Caddy gets and renews them automatically.

Learn more

Docker volume

Storage that survives when a container is deleted

Files a container writes inside itself disappear when the container is removed. A volume is storage that Docker keeps outside the container and attaches to it, so databases, uploads and certificates survive restarts and upgrades. Be careful when cleaning up: docker compose down -v deletes the volumes too, along with all the data in them.

Learn more

Docker Compose

Starting several containers together from one file

Docker Compose reads one file, usually compose.yaml, that describes every container an app needs — for example a web server, a database and a cache — together with their ports, volumes and networks. One command then starts or stops the whole set, the same way on your laptop and on a server, instead of a long docker run line for each container.

Learn more

GPU

A chip that does huge numbers of calculations in parallel

A GPU (graphics processing unit) was first built to draw screen images, which means repeating the same small calculation for millions of pixels. Running an AI model is similar — enormous numbers of multiplications on tensors — so GPUs and similar accelerators do most training and inference. The size of a GPU's own fast memory often decides which models fit. A CPU can run models too, just more slowly.

Learn more Learn more about weights and parameters

Memory

Fast working storage that holds data while programs run

Memory (RAM) is the fast working space a computer uses while programs run; unlike disk storage, it is emptied when the power goes off. To run an AI model, its weights are loaded into memory — on a GPU, into the GPU's own memory — together with the KV cache, calculation buffers and runtime overhead. If they do not fit, the model cannot run or becomes very slow. Here memory means hardware, not a chatbot remembering you.

Learn more Learn more about weights and parameters

Latency

The waiting time between a request and its response

Latency is how long you wait between sending a request and getting a response, usually measured in milliseconds. For AI chat the time until the first token appears matters most, because streaming then shows the rest as it is made. Latency depends on the network, the server's queue, the length of the context and the hardware. Batching many requests together raises total throughput but can make each single request slower.

MPS

PyTorch's way to use the GPU of an Apple Mac

MPS (Metal Performance Shaders) is Apple's GPU library, and PyTorch uses it as the "mps" device on Macs with Apple chips. Putting the model and data on mps makes training and inference much faster than on the CPU. On NVIDIA cards the same code uses "cuda" instead.

Learn more

Cloud notebook

A browser notebook that runs code on a server, often with a GPU

A cloud notebook, such as Google Colab or Kaggle Notebooks, opens in the browser and runs your code cell by cell on a server. Free plans can include a GPU for a limited time, which helps when training is too slow on your own CPU. Files are usually wiped when the session ends, so download what you want to keep.

Learn more

CUDA

NVIDIA's platform for running calculations on its GPUs

CUDA is NVIDIA's software platform that lets programs use an NVIDIA graphics card for general calculations. PyTorch calls the NVIDIA GPU the "cuda" device. Most deep-learning tools support CUDA first, which is one reason NVIDIA cards are so common for AI. On Macs the equivalent device is "mps".

Learn more

Apache

One of the oldest and most widely used web servers

The Apache HTTP Server has been serving websites since the 1990s and still runs a large share of the web. Like every web server it waits on a port, reads requests and sends back files or the answers of a program. Older hosting often uses it; newer setups more often pick Nginx or Caddy.

Learn more

Nginx

A fast web server often used as a reverse proxy

Nginx (said "engine-x") is a web server known for handling many connections at once with little memory. Besides serving files, it is often put in front of other programs as a reverse proxy that passes requests on to them. Unlike Caddy, it does not fetch HTTPS certificates by itself; you add them with a separate tool.

Learn more

FrankenPHP

A PHP app server built on top of Caddy

FrankenPHP is a web server for PHP programs, built on Caddy and written in Go. Because Caddy is inside, it gets automatic HTTPS too, and it can keep a PHP app loaded in memory between requests so pages answer faster. This site, a Laravel app, runs on it.

Caddy

A modern web server that turns on HTTPS by itself

Caddy is an open-source web server written in Go. Its headline feature is automatic HTTPS: give it a real domain name and it gets a certificate, installs it and renews it without being asked. It can serve a folder with one command, or read a short Caddyfile to run several sites and pass requests to apps as a reverse proxy.

Learn more

Caddyfile

The plain-text settings file Caddy reads

A Caddyfile tells Caddy which sites to run and what to do for each: the site address comes first, then lines inside braces such as serving files from a folder or passing requests to an app. A whole site can be four lines. After editing it, caddy reload applies the change without a restart.

Learn more

try_files

A Caddyfile line that falls back to index.html

try_files tells Caddy to look for the requested file and, if it is not there, to hand over another file instead. Apps built with React or Vue have only one real page, index.html, and draw every other address in the browser. Without try_files, reloading such an address or opening a shared link gets a 404.

Learn more

Automatic HTTPS

Getting and renewing HTTPS certificates with no manual steps

With automatic HTTPS the web server itself asks a certificate authority for a certificate, installs it, renews it before it expires and sends http visitors to https. Caddy does this as soon as you write a real domain name in its settings. It only works if the domain's DNS points at the server and ports 80 and 443 can be reached from outside.

Learn more

Certificate authority

A trusted body that checks and signs site certificates

A certificate authority (CA) checks that whoever asks for a certificate really controls the domain, then signs the certificate. Browsers ship with a list of authorities they trust, so a certificate signed by one of them is accepted without a warning. Let's Encrypt is a free authority that does the check automatically; it also limits how many certificates one domain can get per week.

Let's Encrypt

A free authority that issues HTTPS certificates automatically

Let's Encrypt is a non-profit certificate authority that gives out HTTPS certificates for free, through an automatic check instead of paperwork. Caddy and many other tools talk to it on their own. Its certificates last only a short time, so they must be renewed automatically, and it limits how many a single domain can get per week, which is why repeated failed tries can lock you out for a while.

Learn more

A record

The DNS entry that links a domain name to an IP address

An A record is one line in a domain's DNS settings: a name such as example.com and the IPv4 address of the server it should reach. You add it where you bought the domain. Changes can take a few minutes to hours to reach everyone, so a new domain may not open right away. Addresses in the newer IPv6 format use an AAAA record instead.

Learn more

Public IP address

An IP address anyone on the internet can reach

A public IP address is reachable from anywhere on the internet, so a web server needs one before others can open its site. Most home computers only have a private address such as 192.168.0.10, shared behind the router, which outsiders cannot reach directly. Renting a VPS usually comes with a public address.

Firewall

A filter that lets some network connections in and blocks the rest

A firewall checks every incoming and outgoing connection against rules, usually by port, and blocks what is not allowed. On a new server you open only what you need, such as 22 for SSH and 80 and 443 for a website. If a site does not answer from outside but works on the server itself, a closed firewall port is a common reason.

Proxy

A middle server that receives requests and passes them on

A proxy sits between two sides and forwards traffic for them. A forward proxy acts for the people browsing, for example a company gateway; a reverse proxy stands in front of servers and passes visitors' requests to the right app. Because it holds the connection, a proxy in front of a server can also take the ports that the server expected to receive.

System service

A program the computer starts and keeps running in the background

A system service is a program the operating system starts at boot, runs in the background without a terminal, and restarts if it crashes. Real web servers run this way, so they keep going after you log out. On most Linux servers systemd manages them; a program started by hand in a terminal stops when that terminal closes.

Learn more

systemd

The program that starts and manages services on most Linux systems

systemd is the first program most Linux systems run at boot, and it then starts, stops and watches every system service. You talk to it with systemctl and read service logs with journalctl. Not every Linux has it: Alpine, used in this site's browser terminal, uses a smaller tool called OpenRC instead.

Docker Desktop

The app that lets you use Docker on a Mac or Windows PC

Containers need a Linux kernel, which a Mac or a Windows PC does not have. Docker Desktop installs Docker together with a small hidden Linux virtual machine and starts it for you. Install it from docker.com and open it once; after that the docker command works in the terminal. It must be running whenever you use Docker.

Learn more

Dockerfile

The recipe file Docker follows to build an image

A Dockerfile is a plain text file of steps: start from an existing image, copy in your files, run install commands, and say which program to start. docker build reads it top to bottom and produces an image. Because the steps are written down, anyone can rebuild exactly the same image on another computer.

Learn more

Two-stage Dockerfile

A Dockerfile that builds in one stage and keeps only the result

A multi-stage Dockerfile has more than one FROM line. The first stage holds the heavy build tools, such as Node, and builds the site; the last stage starts from a small image and copies in only the finished files. The tools stay behind, so the final image is small, and nobody has to install them on the server.

Learn more

Image tag

The label after the colon that picks an image version

An image name can end with a colon and a tag, such as caddy:2 or node:22. The tag picks which version of the image to download. Pinning a tag like :2 keeps you on Caddy 2.x; leaving it out means latest, which can jump to a new major version without warning.

Learn more

latest

The tag Docker uses when you give none

If you write an image name without a tag, Docker quietly uses the tag latest. Despite the name, it is just a label the image's makers move around, usually to the newest release. A server that pulls latest can suddenly get a new major version that breaks your settings, so real setups pin a tag such as caddy:2.

Learn more

Port mapping

Connecting a port on your computer to a port inside a container

A container has its own ports that the outside cannot see. The -p option joins a port on the host computer to one inside the container: -p 8080:80 means "what arrives at my 8080 goes to the container's 80". The number on the left is yours to choose; if another program already holds it, Docker cannot start the container.

Learn more

Host

A computer on a network, or the name that points to it

A host is any computer connected to a network, and the word is also used for its name, such as example.com. To make a request you need three things: the host, the port and the path. With Docker, "host" means the real computer the containers run on, so a host port is a port on that machine.

Server rack

A tall metal frame that holds stacked server machines

A rack is a cabinet with shelves of a standard width where flat server machines, network switches and power units are bolted in one above another. Data centres are rows of these racks. In the end a server is still a computer in a rack running a program that answers requests.

Data centre

A building full of servers that run around the clock

A data centre is a building packed with racks of servers, with steady power, cooling and fast network lines. Cloud services, VPS hosting and AI models all run in data centres. When you "rent a server", you are renting a part of a machine in one of these buildings.

Concurrent users

Many people connected to a server at the same moment

Concurrent users or connections means how many people are connected to a server at the same time, not how many visit in a day. A toy server that handles one request at a time makes everyone else wait in line. Real web servers such as Caddy handle thousands of connections at once, and a game backend is often sized by how many players it can hold together.

Log

A running record a program writes about what it did

A log is a file or stream where a program writes a line for each thing that happens: requests it received, errors, restarts. When something goes wrong on a server, the log is the first place to look, because the screen usually shows only "500" while the log shows the reason. Logs grow forever unless they are trimmed, so old ones are deleted or compressed.

Local

On this computer or this project, not remote or global

Local means "here": the computer in front of you rather than a remote server, or the current project rather than the whole computer. A local port or local API is reached from this machine only; a local install of a tool or skill applies to one project folder, while a global one applies everywhere.

Authoritative server

A game server that holds the real game state and makes the calls

In an authoritative setup, players' devices only send what they want to do, such as "move left", and the server decides what actually happens and tells everyone. Because the server holds the true state, a player cannot cheat by editing their own copy. The cost is that every action has to travel to the server and back.

Learn more

Azure

Microsoft's cloud computing service

Azure is Microsoft's cloud: you rent servers, databases, storage and many ready-made services that run in Microsoft's data centres around the world. It competes with Amazon Web Services and Google Cloud. A product that runs "only on Azure" ties you to Microsoft's cloud and its prices.

Cluster

Several servers working together as one system

A cluster is a group of servers, each called a node, that share the work and act like one bigger system. If one machine fails, the others keep going, and you can add machines when more players arrive. Running a cluster needs extra setup and tools such as Kubernetes, which is why small projects often start on a single machine.

Learn more

Cluster node

One server among several that make up a cluster

In a cluster each machine is called a node. A single-node setup runs everything on one machine: simple and cheap, but it can only grow by getting a bigger machine. This "node" has nothing to do with Node.js, the JavaScript runtime.

Learn more

Scaling up

Handling more load by moving to a bigger machine

Scaling up, or vertical scaling, means giving one server more CPU, memory or disk so it can handle more users. It needs no change to the program, which makes it the easy first step. It has a ceiling, though: the biggest machine you can rent. Scaling out, adding more machines in a cluster, has no such ceiling but is harder to run.

Learn more

Cold start

The extra delay when a sleeping function has to wake up first

Serverless functions are switched off when nobody uses them. The first request after a pause has to wait while the platform loads the code and starts it, which can add a noticeable delay. Later requests are fast until the function goes to sleep again. A server that is always running has no cold starts.

Learn more

Serverless

Uploading only functions and letting the cloud run them

With serverless, you upload a single function and the cloud runs it only when a request arrives, charging per call. You never manage the server yourself; AWS Lambda is the best-known example, which is why such functions are often called lambdas. The trade-offs are cold starts and an extra network hop between your game and the function.

Learn more

Colyseus

An open-source Node.js server for real-time multiplayer rooms

Colyseus is an open-source multiplayer game server written in TypeScript for Node.js. Players join "rooms", and Colyseus keeps the room's state in sync on every player's screen automatically, with built-in matchmaking. It is strongest at real-time play; accounts, friends and leaderboards you mostly build yourself.

Learn more

Nakama

An open-source game backend with accounts, chat and rankings

Nakama, made by Heroic Labs, is an open-source game server written in Go. It already has the community parts most games need: accounts and sign-in, friends, groups, chat, leaderboards, matchmaking and real-time matches. You can host it yourself with Docker next to a database, or pay for the managed version, and add your own game logic in Go, TypeScript or Lua.

Learn more

SpacetimeDB

A database that is also the game server

SpacetimeDB, from Clockwork Labs, puts your game logic inside the database itself as modules, written for example in Rust or C#. Players connect straight to it, call those functions, and receive every change to the data they subscribed to in real time. With no separate server program, there is no sync code between two systems, but it asks for a new way of designing a game.

Learn more

Dedicated server

A game server program that runs one match by itself

A dedicated game server is a copy of the game that runs on a server, often one per match, with no player sitting at it. It runs the match and decides what happens, so no player's computer has an advantage. Fast shooters and large matches need many of them started and stopped all day, which is the job of orchestration services.

Learn more

Headless

Running a program with no screen or window

A headless program runs without any display: no window, no graphics, just its work. Game engines such as Unity and Unreal can make a headless build of a game to run as a dedicated server, saving the cost of drawing pictures nobody sees. Browsers can run headless too, for automated testing.

Learn more

Orchestration

Starting, stopping and watching many servers automatically

Orchestration is software that manages a fleet of servers or containers for you: it starts new ones when load rises, stops idle ones, restarts any that crash and decides which machine runs what. Kubernetes is the best-known orchestrator. For games, orchestration usually means launching one dedicated server per match and shutting it down afterwards.

Learn more

Kubernetes

A tool that runs and manages containers on many machines

Kubernetes, first designed at Google and now open source, runs containers on a cluster of machines. You describe what should be running, such as "three copies of this web app", and it keeps it that way: placing containers, restarting failed ones and spreading traffic. It is powerful but complex, so small projects usually start with plain Docker Compose.

Managed service

A service whose servers the provider runs for you

With a managed service you use the software, but the provider installs it, runs the servers, updates them and keeps backups. You start faster and need no server skills; in exchange you pay every month, follow the provider's limits and often cannot take your data elsewhere easily. The opposite is self-hosting.

Learn more

Vendor lock-in

Being tied to one provider because leaving is too costly

Vendor lock-in happens when your game or app depends so much on one company's product, its special features, data format or cloud, that moving away would mean rewriting large parts. The company can then raise prices or shut the product down and you have little choice. Open-source, self-hostable tools reduce this risk.

Learn more

Message broker

A server that holds messages between programs and delivers them

A message broker sits between programs: one side posts a message, the broker stores it and hands it to whichever program is meant to process it. Senders and receivers do not need to be running at the same moment, and work can be spread over many workers. RabbitMQ and Kafka are well-known examples; Redis is often used as a simple one.

Service mesh

A layer that handles traffic between many small services

When an app is split into many small services, a service mesh puts a small proxy beside each one to handle how they talk: routing, retries, encryption and measuring. Istio and Linkerd are common examples, usually running on Kubernetes. It is useful for large systems with dozens of services and unnecessary overhead for a small game backend.

Stateful service

A service that keeps data in memory between requests

A stateful service remembers things between requests, such as who is in a game room or where each player stands, instead of looking everything up again each time. That makes real-time games fast, but such a service is harder to restart or copy, because the state would be lost or split. A stateless service keeps nothing and can be copied freely.

Push notification

A message a server sends to a phone even when the app is closed

A push notification is sent from a server through Apple's or Google's delivery service (APNs or Firebase Cloud Messaging) and appears on the phone even if the app is not open, for example "Your energy is full". The app must ask the user for permission first, and the server needs keys from Apple or Google to send them.

Learn more

Queue

A line of jobs or requests waiting to be handled in order

A queue holds work that cannot be done right away: incoming requests, emails to send, images to resize. Items go in at the back and are taken from the front, usually by background workers. Queues keep a site responsive when work piles up, but a queue that grows faster than it empties means users wait longer and longer.

Scheduler

A program that starts jobs at set times

A scheduler runs jobs on a timetable: every minute, every night at 3 a.m., every Monday. Typical jobs are sending reminders, cleaning old data or making backups. On Linux the classic scheduler is cron; web frameworks such as Laravel have their own scheduler that one cron line wakes up every minute.

Real-time sync

Keeping every player's view of the game the same, moment by moment

In a multiplayer game each player has their own copy of the game on their device. Synchronization keeps those copies matching: when one player moves, the server passes the change to everyone within a fraction of a second, usually over WebSockets or UDP. Network delay makes this the hardest part of online games, which is why tools that do it for you are valued.

Learn more

Relay

A server in the middle that passes a connection between two sides

A relay receives data from one side and forwards it to the other, so the two never connect directly. Games use relays when players' devices cannot reach each other through home routers. This site's browser Linux reaches the real internet through a network relay, because a web page cannot open raw network connections on its own.

Instance

One virtual server rented from a cloud

In the cloud, an instance is one virtual server you rent and switch on, with a chosen amount of CPU, memory and disk. You can start several from the same setup and pay by the hour or month. A small instance is often enough for a game backend with thousands of players.

Learn more

Tech stack

The set of programs and tools an app is built and run with

A stack, or tech stack, is the combination of pieces an app uses together: for example a web framework, a database, a cache and a web server. Saying "the whole stack" means all those parts at once, such as every container in one Docker Compose file. Choosing a stack early shapes what your team must learn and run.

Hardware

The physical parts of a computer

Hardware is everything you could touch: the processor (CPU), graphics chip (GPU), memory, disks, keyboard and network cards. Software is the programs that run on it. "Runs on your hardware" means it runs on machines you own or rent, not inside someone else's service; the same AI model runs faster or slower depending on the hardware.

Accelerator

A chip built to do one kind of calculation very fast

An accelerator is a processor made for one job, such as the huge numbers of multiplications an AI model needs. GPUs are the most common; Google's TPUs and the neural engines in phones are others. A model can also run on an ordinary CPU, only more slowly. The runtime program is separate: it loads the model's numbers onto the accelerator and tells it what to compute.

Learn more

CPU

The main processor that runs a computer's general work

The CPU (central processing unit) carries out the instructions of every program: opening files, running the browser, doing calculations step by step. It has a few powerful cores, while a GPU has thousands of small ones that suit the repeated multiplications of AI. Training a model on the CPU works but is much slower.

x86

The family of Intel and AMD processors most PCs use

x86 is the name of the processor design that started with Intel's 8086 and is used by most Windows PCs and servers, made by Intel and AMD. A program compiled for x86 does not run directly on an ARM processor such as Apple Silicon or most phones. The 64-bit version is called x86-64; the older 32-bit one is still called x86.

Learn more

32bit

A processor or system that works with 32-bit addresses

A 32-bit system handles memory addresses 32 bits long, so one program can reach at most about 4 GB of memory. Most computers today are 64-bit. The browser Linux on this site emulates a 32-bit x86 machine, which is enough for small Python programs but is one reason the models trained here stay small.

Learn more

v86

An emulator that runs an x86 computer inside a web browser

v86 is an open-source emulator written in JavaScript and WebAssembly that imitates a 32-bit x86 PC inside a browser tab. This site uses it to boot a real Alpine Linux, so you can type commands and run Python with nothing installed. Because every instruction is imitated in software, it is much slower than a real computer, and it stops when the tab closes.

Learn more

Emulator

A program that imitates another computer so its software can run

An emulator copies the behaviour of a different machine in software: its processor, memory and devices. Programs made for that machine then run unchanged, as with old game consoles on a PC or Linux in this site's browser. Imitating every instruction costs speed, which is why downloads and installs in the browser Linux take longer.

Learn more

Virtual machine

A whole computer imitated in software inside a real one

A virtual machine (VM) is a computer made of software: it has its own operating system, memory and disk, while really running on another computer. Many VMs can share one physical machine, which is how VPS hosting works. A container is lighter: it shares the host's kernel instead of bringing a whole operating system, so it starts faster.

Operating system

The base program that runs the computer and its programs

The operating system starts first when the computer turns on. It shares the processor and memory between programs, keeps files on the disk, and passes keyboard, mouse and network signals to the right program. Windows, macOS, Linux, Android and iOS are operating systems. Commands and paths differ between them, so instructions often give one line per system.

Learn more

Kernel

The innermost core of an operating system

The kernel is the part of the operating system that talks directly to the hardware. It decides which program uses the processor next, hands out memory, and through drivers reads keys, disks and network cards. Linux is, strictly speaking, a kernel; Ubuntu or Alpine add the tools around it. Containers share the kernel of the computer they run on.

Device driver

A small program that lets the operating system use a device

A driver translates between the operating system and one piece of hardware, such as a keyboard, a graphics card or a printer. When you press a key, the keyboard sends a number, and the driver in the kernel turns it into a key event for the program in front. A missing or wrong driver is why a newly plugged-in device sometimes does nothing.

macOS

The operating system of Apple's Mac computers

macOS runs on Apple's Mac computers. Underneath it is a Unix system, so its Terminal accepts most of the same shell commands as Linux, and zsh is the default shell. Some tools behave a little differently from their Linux versions, and keyboard shortcuts use the Command key where Windows uses Control.

Spotlight

The search box on a Mac for finding apps and files

Spotlight is macOS's search. Press Command and Space, type part of a name such as "Terminal", and press Return to open it. It is the quickest way to find an app that is not in the Dock.

Learn more

Windows

Microsoft's operating system for PCs

Windows is the most common operating system on desktop and laptop PCs. Its own command lines are Command Prompt and PowerShell, which use different commands from Linux. To use the bash commands of this course on Windows, install WSL, which runs a real Linux inside Windows.

Android

Google's operating system for phones and tablets

Android is the operating system on most of the world's phones, made by Google on top of the Linux kernel. Apps are installed mainly from Google Play and built as Android-specific packages. An app for both Android and iPhone is either built twice or made with a tool such as Flutter that produces both from one code base.

Ubuntu

The most widely used Linux distribution

Ubuntu is a free Linux distribution made by Canonical and based on Debian. It is the usual choice for servers, cloud machines and WSL on Windows, so most online instructions assume it. Software is installed with apt, and a long-term support (LTS) version comes out every two years.

Debian

A long-standing Linux distribution that Ubuntu is built on

Debian is one of the oldest Linux distributions, run by volunteers since 1993 and known for stability. Ubuntu and many others are built on it, so they share the apt package tool and most commands. Many official Docker images are based on Debian.

Alpine Linux

A very small Linux distribution

Alpine Linux is a Linux distribution of only a few megabytes, built from small parts (musl and BusyBox). That makes it popular for Docker images and lets this site boot it inside the browser. Packages are installed with apk instead of apt, and a few commands are simpler versions of the usual GNU tools.

Learn more

Distribution

One packaged edition of Linux, such as Ubuntu or Alpine

Linux itself is only a kernel. A distribution bundles it with tools, a package manager and default settings into a complete system: Ubuntu, Debian, Fedora and Alpine are distributions. Most commands are the same everywhere, but the way to install software differs, for example apt on Ubuntu and apk on Alpine.

Learn more

Disk

The storage that keeps files when the power is off

A disk, today usually an SSD, keeps files, programs and AI model files even when the computer is switched off. It is much larger and slower than memory (RAM), so a program reads what it needs from the disk into memory before working on it. In Linux a disk appears as a device such as /dev/sda and is split into partitions.

Learn more

Drive

A storage device, or a part of one used as a separate unit

A drive is a disk, SSD, USB stick or CD that the computer can store or read files on. A partition inside a disk can also act as its own drive. On Windows each drive gets a letter such as C:; on Linux it appears under /dev and is mounted into a folder instead.

Learn more

USB stick

A small plug-in storage device

A USB stick (flash drive) is a small storage device you plug into a USB port to carry files between computers. Despite the Korean name "USB memory", it keeps files like a disk, not like RAM. It is usually formatted as FAT so that Windows, macOS and Linux can all read it.

Learn more

Disk image

A single file that holds the whole contents of a disk

A disk image copies every byte of a disk, partitions and file system included, into one file such as .img or .iso. A virtual machine uses one as its disk, and an operating system installer is a disk image written to a USB stick. On Linux you can mount an image file and browse it like a real disk.

Learn more

Backup

A separate copy kept so data can be restored if lost

A backup is a copy of files or a database kept somewhere else, so that a deleted file, a broken disk or a bad update does not mean losing everything. A backup only helps if it is recent, stored on a different machine or place, and actually restores, so it is worth testing the restore now and then.

Network

Computers connected so they can send data to each other

A network links computers, phones and servers by cable or radio so they can exchange data. Your home Wi-Fi is a small network, and the internet is a network of networks. Everything that travels over it is just data, text and files, so a request has to cross it to reach a server and the answer has to cross it back, which takes time.

Loopback address

The IP address that always means "this same computer"

127.0.0.1 is the loopback address: anything sent to it never leaves the machine and comes straight back to it. The name localhost points to it. A server listening only on 127.0.0.1 can be reached from programs on the same computer but not from outside, which makes it safe for practice servers.

Learn more

Address already in use

The error when another program already holds that port

A server must take a port before it can listen, and only one program can hold a port at a time. This error means something, often an earlier copy of the same server you forgot to stop, already has it. Stop that program (find its process ID first) or start the new one on a different port.

Learn more

Connection refused

The error when nothing is listening at that address and port

Connection refused means the request reached the computer, but no program is waiting on that port. Usually the server has not started yet, has crashed, or is listening on a different port. Check that it is running and read its log; a wrong port number in the address is another common cause.

Learn more

Throughput

How much work a system finishes in a given time

Throughput measures volume, such as requests per second or tokens per second for an AI model. Latency measures how long one request waits. The two trade off: grouping many requests into one batch raises throughput, but each request may wait a little longer before its answer starts.

UTC

The world's reference time, the same in every country

UTC (Coordinated Universal Time) is the clock that other time zones are counted from: Korea is UTC+9, so midnight UTC is 9 a.m. in Korea. Servers and databases usually store times in UTC and convert them to each user's local time only for display, so that people in different countries agree on when something happened.

Cloudflare

A company that delivers, protects and hosts websites

Cloudflare runs a worldwide network that sits in front of websites: it serves copies of pages from nearby locations, blocks attacks and manages domain names (DNS). It also hosts sites and small programs itself, for example static homepages on Cloudflare Pages. Many sites, including this one, use it without visitors noticing.

Learn more

Cloudflare Pages

A Cloudflare service that publishes static sites for free

Cloudflare Pages puts a static site, a folder of HTML, CSS, JavaScript and images, on the internet at an address such as your-project.pages.dev. You either upload the folder with Wrangler (Direct Upload) or connect a GitHub repository so every push publishes a new version (Git integration). It does not run a server program for you, so never put secrets in the folder: everything in it is public.

Learn more

Wrangler

Cloudflare's command-line tool

Wrangler is the program you use in the terminal to work with Cloudflare: log in, create projects and publish Pages sites or Workers. It is an npm package, so npx can run it without a separate install. The first run of wrangler login opens the browser to connect your Cloudflare account.

Learn more

Direct Upload

Publishing a Pages site by uploading the finished folder yourself

With Direct Upload you build the site on your own computer and send the folder to Cloudflare Pages with Wrangler or the dashboard. Nothing is connected to GitHub, so each update means uploading again. A project created this way cannot be switched to Git integration later, so choose at the start.

Learn more

Git integration

Connecting a repository so every push publishes automatically

With Git integration you connect a GitHub repository to Cloudflare Pages once. From then on every push to the repository makes Cloudflare build and publish a new version, and other branches get their own preview addresses. Your Git history becomes your deploy history.

Learn more

Preview address

A separate test address created for each deployment

Every time you deploy to Cloudflare Pages, that version gets its own address, such as abc123.my-homepage.pages.dev, while the main production address shows the newest one. You can open the preview to check a change before sharing it. Preview addresses are public too, so anyone with the link can see them.

Learn more

Production

The real, public version that actual users get

Production is the live environment: the site address or store release that real users use, as opposed to test or preview versions. A change goes to production only after it has been checked elsewhere. On Google Play, production is the last track, after internal, closed and open testing.

Learn more

Vercel

A hosting service that deploys web apps from a Git repository

Vercel is a hosting platform made by the company behind the Next.js framework. You connect a GitHub repository and every push builds and publishes the site, with a preview address for each change. Besides static pages it can run small server functions, which makes it popular for React and Next.js apps.

SSH key

A pair of key files for logging in without a password

An SSH key is a pair of files made on your computer: a private key you never share and a public key you put on the server. When you connect, the server checks that you hold the matching private key, so no password crosses the network. Servers that accept only keys are much harder to break into than ones that accept passwords.

Learn more

Public key

The half of a key pair you can safely give to others

Key pairs are made of two linked keys. The public key can be shared freely, for example placed on a server in ~/.ssh/authorized_keys; the private key stays only with you. Something locked or signed with one can be checked with the other, so the server can confirm it is you without ever seeing your private key.

Learn more

Remote control access

Letting someone else operate your computer from afar

With remote control, another person sees your screen over the internet and can move your mouse and type on your computer. Video call apps can grant it during screen sharing. Give it only to people you trust and take it back when they are done.

Learn more

Cloud drive

Online storage for your files, such as Google Drive

A drive in this sense is file storage on the internet, such as Google Drive, OneDrive or Dropbox. Files there can be reached from any device and shared with others. When you connect a drive to an AI tool, the AI can read what you allow, so share only the folders a task needs rather than the whole drive.

Service account key

A key file that lets a program log in instead of a person

A service account is an account for a program, not a person, and its key is a file (often JSON) that proves who the program is. Automated builds cannot click "log in" in a browser, so they read this key, usually from an environment variable, to deploy or call cloud services. Anyone who has the file can act as that account, so never commit it to Git.

Learn more

Runner

The computer that actually runs GitHub Actions jobs

A runner is the machine that carries out the steps of a GitHub Actions workflow. GitHub lends a fresh virtual machine, for example Ubuntu, for each job and throws it away afterwards, so the work happens even when your own computer is off. You can also register your own machine as a self-hosted runner. This is different from an AI model runner.

Learn more

Workflow file

A YAML file that tells GitHub Actions what to do and when

A workflow file lives in the .github/workflows/ folder of a repository. It says when to run (on a push, a pull request, a comment or a schedule) and lists the jobs and steps to carry out on a runner. Installing Claude Code's GitHub app adds such a file, so mentioning @claude in an issue starts a job.

Learn more

Secret

A password or key kept outside the code until it runs

A secret is a value such as an API key that must not appear in the repository. On GitHub you save it under the repository's Settings as an Actions secret; workflows read it by name while they run, and its value is hidden in logs. If a secret is ever committed by mistake, replace the key at once, because Git history keeps the old value.

Learn more

Isolation

Running something apart so it cannot affect anything else

Isolation means separating a program from the rest of the computer, for example inside a container, a virtual machine or a sandbox, so that whatever it does stays inside. Modes that let an AI agent run any command without asking are safe only in an isolated place, because a mistake there cannot delete your real files or reach your accounts.

Pipeline

A chain of automated steps that run one after another

In automation a pipeline is a series of steps that run by themselves in order, each using the result of the last: for example build, test, review and deploy whenever code is pushed. Tools such as codex exec are made to be one step in such a pipeline, because they run without a chat screen and print a result another step can read.

Learn more

tmux attach

Join a tmux session you left running earlier

tmux attach puts you back into a tmux session that kept running after you detached or logged out. With -t you choose the session by name, and tmux ls lists the sessions there are. This is how you check the next morning on an agent you started on a server the night before.

Learn more

Detach

Leave a tmux session while it keeps running

Detaching takes you out of a tmux session without stopping it: press Ctrl+b, let go, then press d. Everything started inside keeps running, even if you then close the terminal or log out of the server. Typing exit instead closes the session and stops what runs in it.

Learn more

VRAM

Memory built into a graphics card (GPU)

VRAM (video RAM) is the memory on a graphics card. To run a language model on a GPU, its weights must fit in VRAM, so a model that needs more VRAM than the card has will not load unless it is made smaller. That is why a tiny model such as XSLM, which needs only hundreds of megabytes, runs on ordinary computers.

Learn more about weights and parameters

IoT (Internet of Things)

Everyday devices connected to the internet

IoT means everyday things — sensors, cameras, home appliances, wearables — that carry a small computer and a network connection. These devices usually have little computing power and memory, so an AI model that runs on them must be very small and light.

Out of memory (OOM)

An error when a program needs more memory than there is

Out of memory (OOM) happens when a program asks for more memory than the computer or GPU has, and the program stops with an error. In model training it usually means the batch or the sequence is too large: make the batch smaller or the sequence shorter, or add up gradients over several small batches.

Learn more

ESP32

A small, cheap chip board with Wi-Fi for building devices

ESP32 is a family of small, inexpensive microcontroller chips made by Espressif, with Wi-Fi and Bluetooth built in. Makers use ESP32 boards for robots, sensors and voice gadgets. It is too weak to run a large AI model itself, so it usually sends voice or images to a server and acts on the server's answer.

Learn more

Firmware

The program stored in a device's chip

Firmware is the program stored inside a device's chip — a robot board, a router, a keyboard — that runs as soon as the power is on. You change it by building a new version and flashing it onto the board. Anyone holding the board can read the firmware out, so never put secret keys in it.

Learn more

Daylight saving time

Setting clocks one hour forward for summer

With daylight saving time (DST), some countries set their clocks one hour forward in spring and back in autumn. SONUB stores timetables in UTC, so when DST starts or ends, the local time of a class moves by one hour for both the student and the teacher. SONUB shows each day's real local time and warns before the change.

Time zone

An area whose clocks all show the same time

A time zone is an area where clocks show the same time. It is written as a difference from UTC (Seoul is UTC+9) or a name such as Asia/Seoul. SONUB stores every class in UTC and shows it in each viewer's own time zone, so a student in Manila and a teacher in Seoul see the same class at their own local times. SONUB screens call it country time.

KST (Korea time)

Korea Standard Time, nine hours ahead of UTC

KST is the time used in Korea, written UTC+9. Korea does not use daylight saving time, so KST is the same all year. The weekly SONUB AI seminar is announced in KST, and the page also shows the time in your own time zone.

Learn more

DevOps

Joining development and operations so software ships and runs smoothly

DevOps joins the people who write software (development) and the people who run it on servers (operations) into one way of working. Repeated jobs such as testing every change, deploying it and watching the running service are automated, so new versions go out often and problems show up early. It is a way of working, not one tool, though the job title "DevOps engineer" is also common.

Learn more

game backend service

A managed service that provides a game's common server features

A game backend service gives a game ready-made server features it would otherwise have to build: player login, saved progress, leaderboards, matchmaking and LiveOps tools for events after launch. The provider runs the servers, and the game calls them through an SDK or a web API. It saves a small team a lot of work, but the game then depends on that provider's prices and rules.

Learn more

Agones

Open-source software that runs fleets of dedicated game servers on Kubernetes

Agones is an open-source project started by Google. It runs on Kubernetes and starts, tracks and shuts down many dedicated game servers, usually one per match. It is often paired with Open Match, which decides who plays with whom.

Learn more

Open Match

An open-source framework for building game matchmaking

Open Match is an open-source project started by Google for matchmaking — grouping waiting players into fair matches. You write the rules for a good match; Open Match handles the queue of tickets and scales it. It is often used with Agones, which then starts a server for each match.

Learn more

Photon

A family of multiplayer networking tools for games (Fusion, Quantum)

Photon, made by Exit Games, is a set of hosted tools that send game state between players. Photon Fusion is used mainly with Unity; Photon Quantum is a deterministic engine where every player runs the same simulation from the same inputs. It focuses on networking rather than accounts, saves or stores.

Learn more

Centrifugo

An open-source server that pushes real-time messages to browsers and apps

Centrifugo is an open-source real-time messaging server. Browsers and apps stay connected to it (usually by WebSocket) and subscribe to channels; when the main server publishes a message to a channel, Centrifugo delivers it to everyone subscribed at once. Chat and live notifications are typical uses.

Learn more

SONUB dictionary

Learning

31 terms

Touch typing

Typing by finger memory without looking at the keys

Touch typing means typing while your eyes stay on the screen and your fingers find the keys by memory. Each finger has its own keys and returns to the home row after every reach. It feels slow at first, but it is the only way to become both fast and accurate.

Learn more

Home row

The middle row of keys where your fingers rest

The home row is the middle row of letter keys where your fingers wait between key presses: A S D F for the left hand and J K L ; for the right. The F and J keys have small bumps so your index fingers can find them without looking. Every reach to another key starts and ends here.

Learn more

WPM

Typing speed in words per minute

WPM stands for words per minute. Because real words have different lengths, typing programs count every 5 correct characters as one word. SONUB lessons set a WPM goal for each level together with an accuracy goal.

Learn more

CPM

Typing speed in correct characters per minute

CPM means characters per minute: how many characters you typed correctly in one minute. The SONUB typing test grades by CPM and accuracy. Korean is counted per key press, so the same text gives a higher number than English, and the grade lines are different for each language.

Learn more

Keyboard layout

Which letter sits on which key

A keyboard layout decides which letter each key types. Most English keyboards use QWERTY, named after the first six letters of the top row. Korean uses the 2-set layout with consonants on the left and vowels on the right, and Japanese and Chinese are often typed by spelling sounds with Latin letters. In SONUB you choose the layout separately from the site language.

Learn more

Accuracy

The share of keys you pressed correctly

Accuracy is the percentage of key presses that were correct. If you press 100 keys and 5 are wrong, your accuracy is 95%. Every level and test in SONUB checks accuracy together with speed, because speed built on mistakes does not last.

Learn more

Bullet point

A dot or mark at the start of each item in a list

A bullet point is the small mark, usually •, in front of each line of a list. Bullets split information into short separate items that are quick to scan. In a prompt you can ask for them as the format, for example 'two bullet points per slide', and AI tools usually write them in Markdown as lines starting with - or *.

Curriculum

The planned order of everything a course teaches

A curriculum is the whole plan of a course: which topics come in which order, what each step should leave you able to do and how it is checked. Following one means each lesson builds on the last instead of jumping around. SONUB's curricula for AI, shell and Git are public, so anyone can see the full path before starting.

Learn more

Paradigm

The shared basic way of thinking and doing things in a field

A paradigm is the set of assumptions most people in a field take for granted: what counts as a good idea, how work is done, what success looks like. A paradigm shift is when that frame changes, as when smartphones changed how software is sold, or as AI is now changing how a business is started and run.

XP

Experience points earned by finishing lessons and missions

XP (experience points) is a score borrowed from games: you earn it by finishing lessons, quizzes and missions, and it adds up over time. It shows how much practice you have done, not how good a single answer was. Passing a check in the AI lab, for example, adds a set amount of XP.

Learn more

CC BY-SA

A licence: reuse freely, credit the source, share alike

CC BY-SA is a Creative Commons licence. BY means you must credit the original author; SA (ShareAlike) means anything you make from it must be shared under the same licence. Within those two rules you may copy, change and even sell the work. Wikipedia and Learn X in Y Minutes use it, which is why SONUB names the source when it adapts their material.

Pinyin initial

The consonant at the start of a Chinese syllable

Pinyin writes each Chinese syllable as an initial plus a final. The initial is the consonant sound at the start, such as m, b, p, f, d, t, n or l in ma, ba, da. Some syllables have no initial. In Chinese pinyin typing you type the initial first, so typing lessons practise them in groups.

Learn more

Pinyin final

The vowel part that ends a Chinese syllable

In pinyin, the final is everything after the initial: a vowel or vowel group, sometimes ending in n or ng, such as a, o, e, ai, ao, an or ang. Every syllable has a final, even when it has no initial. Typing lessons usually start with the simple finals a, o, e, i, u because they appear in almost every word.

Learn more

Batchim

The consonant at the bottom of a Hangul syllable block

A Hangul syllable is written as a block: a first consonant, a vowel and sometimes a final consonant underneath, called batchim. In 밥, ㅂ on top and ㅂ at the bottom are both there, and the bottom one is the batchim. Batchim are pronounced as only seven sounds (ㄱ ㄴ ㄷ ㄹ ㅁ ㅂ ㅇ), so 옷 and 옫 sound the same on their own.

Learn more

Double batchim

A batchim made of two different consonants

A double batchim is a final consonant made of two letters side by side, such as ㄳ, ㄵ, ㄺ or ㄼ. On its own, only one of the two is pronounced: 닭 sounds like 닥, 앉다 like 안따. When a vowel follows, the second consonant moves on to the next syllable: 닭이 sounds like 달기.

Learn more

Tense consonant

The 'stiff' Korean consonants ㄲ ㄸ ㅃ ㅆ ㅉ

Korean has five tense consonants, written as doubled letters: ㄲ, ㄸ, ㅃ, ㅆ and ㅉ. They are said with a tight throat and no puff of air, so 꿀 differs from 굴 and 쿨. Plain consonants also become tense in some places, for example after certain batchim: 학교 sounds like 학꾜.

Learn more

Compound vowel

A Korean vowel built from two vowel letters (ㅘ ㅝ ㅢ)

Some Hangul vowels are made by joining two simpler vowels, and are said by gliding from one sound to the other: ㅗ + ㅏ = ㅘ (wa), ㅜ + ㅓ = ㅝ (wo), ㅡ + ㅣ = ㅢ (ui). Reading them as two separate syllables is a common mistake: 과 is one syllable, gwa.

Learn more

Honorifics

Korean forms that show respect to the person spoken about or to

Korean changes words to show respect: -(으)시- goes into a verb when the subject is older or senior, and some words have special respectful forms, such as 드시다 for 먹다 (eat) and 계시다 for 있다 (be). Using them with elders, customers and strangers is expected, while using them with close friends can sound distant.

Learn more

Irregular conjugation

Korean verbs whose stem changes against the usual rule

Most Korean verbs keep their stem when an ending is added, but some change it in fixed patterns. ㅂ verbs turn ㅂ into 우 (덥다 → 더워요), ㄷ verbs turn ㄷ into ㄹ (듣다 → 들어요) and ㅅ verbs drop ㅅ (낫다 → 나아요). Each pattern has to be learned, but there are only a handful.

Learn more

Connective ending

A Korean verb ending that joins two clauses into one sentence

Korean joins sentences by changing the end of the first verb instead of adding a separate word like 'and'. Each connective ending carries a meaning: -고 (and), -아서/어서 (so, then), -지만 (but), -(으)면 (if). 비가 와요 + 집에 있어요 becomes 비가 와서 집에 있어요 (it rains, so I stay home).

Learn more

Causative

A verb form meaning 'make or let someone do it'

A causative verb means the subject makes or lets someone else do the action. Korean forms many of them with -이-, -히-, -리-, -기-, -우- or with -게 하다: 먹다 (eat) → 먹이다 (feed), 입다 (wear) → 입히다 (dress someone). Some suffixes are the same as passive ones, so the sentence decides which is meant.

Learn more

Korean passive

A Korean verb form for having something done to you

A passive verb puts the one who receives the action first. Korean makes many with -이-, -히-, -리- or -기-: 보다 (see) → 보이다 (be seen), 먹다 (eat) → 먹히다 (be eaten), 열다 (open) → 열리다 (be opened). -아/어지다 also works with many verbs. It plays the same role as the English passive voice, without 'be + past participle'.

Learn more

Idiom

A fixed phrase whose meaning is not the sum of its words

An idiom is a set phrase that means something different from its words read one by one. In Korean, 발이 넓다 (feet are wide) means 'knows many people' and 손이 크다 (hands are big) means 'generous'. Idioms must be learned as whole pieces, and they appear often in TOPIK reading and listening questions.

Learn more

TOPIK

The official test of Korean as a foreign language

TOPIK (Test of Proficiency in Korean) is the official Korean language exam for non-native speakers, run by the Korean government. TOPIK I covers levels 1–2 and TOPIK II levels 3–6, from beginner to advanced. Universities and employers in Korea often ask for a certain level, so courses use its question types for practice.

Learn more

Complex sentence

A sentence with two or more subject–verb pairs

A complex sentence joins two or more clauses, each with its own subject and verb, into one sentence. English joins them with words such as because, when or who; Korean changes the end of the first verb with a connective ending. Being able to build and read them is what turns short, choppy sentences into natural writing.

Sentence component

The role a word plays in a sentence: subject, object…

Sentence components are the roles words take in a sentence: the subject (who does it), the predicate (what happens), the object (what it is done to), complements and modifiers. Parts of speech say what kind of word it is; components say what job it does in this sentence. Finding them is the first step in reading a long sentence.

Small talk

A short, light chat with someone you do not know well

Small talk is friendly conversation about easy topics, such as the weather, the place you are in or what someone does. Its purpose is less to share information than to show you are friendly and to open the door to a longer talk. The trick is to answer, add a little and ask something back, so the other person has a turn.

Particle (Korean)

A small word attached after a noun to show its role (은·는·이·가)

Korean attaches particles to the end of nouns to show what role they play: 이/가 marks the subject, 을/를 the object, 에 a place or time, 은/는 the topic. The form changes with the last sound of the noun: 책이 but 사과가. Because the particle carries the role, Korean word order can be quite free. Search tools must also allow for particles, or 토큰을 is not found when you look for 토큰.

Learn more

Inflected form

A word whose ending has changed (write → writes, wrote)

An inflected form is a word with its ending changed to fit the sentence: plurals (token → tokens), tenses (write → wrote) or Korean verb endings (쓰다 → 써서). For a glossary popup, each form is a different string of letters, so automatic matching finds only the forms listed as aliases; the others are marked by hand with data-term.

Learn more

Small letter

The small form of a letter: a, b, c

Small (lowercase) letters are the everyday form of the alphabet: almost all of a text is written in them, and capitals appear only in special places. That is why learning the small letters well matters most. Some look alike and are easy to mix up: b and d face opposite ways, and p and q hang below the line.

Reading comprehension

Reading a text and understanding its meaning correctly

Reading comprehension is understanding what you read, not just saying the words: what the text is about, its main idea, details that support it and what it suggests without saying. Exams test it with questions on topic, main idea, blanks and inference. Strategies such as reading the first and last sentences first help with long passages.

SONUB dictionary

Lessons

43 terms

USD (US dollar)

The US dollar, the only currency for SONUB class prices

USD is the code for the United States dollar. Teachers set every class price in whole US dollars — at least $1 and at most $1 per minute (for example $1–$25 for a 25-minute class) — and the student pays that exact amount on PayPal, straight to the teacher. SONUB has no points and no other currency.

Learn more

Reputation

The trust record SONUB builds from class history

Reputation shows whether a teacher or a payer can be trusted, built only from records kept on SONUB: attendance in the video classroom, cancellations, reviews and confirmed problems. It is shown with its evidence, not as one number, and it never guarantees identity or future dealings. A new member with little history does not have a bad reputation.

Learn more

Reputation deduction

Points taken off a teacher for late cancelling or absence

A reputation deduction is added automatically from SONUB's records when a teacher cancels a paid or free trial class late, or misses it. Each one is taken off the ranking score for 90 days, up to 50 in total. SONUB does not call it a penalty.

Reputation rate

A teacher's reputation as a percentage from 0 to 100

The reputation rate turns a teacher's recent record into a percentage: up to 40 from the share of successful classes in the last 90 days, up to 30 from published student reviews, and up to 30 from the number of successful classes (full at 60). It is recalculated all the time, so it can go down again. It does not change the booking period, which is the same 24 days for every teacher.

Ranking score (display score)

Today's score that orders teachers in Find a teacher

The ranking score sets the order in Find a teacher and changes daily: profile score + SONUB rating × 10 + today's timetable (up to 10) + 3 for a free trial today + 1 per 100 successful classes in 100 days + student reviews (−50 to +50) + management score (up to 10) − reputation deductions. With 147 or more, a higher score appears earlier. It is not reputation.

Learn more

Profile score

How fully a teacher has filled in the profile, out of 100

The profile score counts what you have filled in: name 1, photo 15, video 15, real name 5, birth date 5, school 5, headline 9, introduction of 100+ characters 10, teaching fields 10, class languages 5, country 5, experience 5, PayPal business account 10. You need 95 or more and a connected PayPal business account to take bookings. A low score keeps you listed, but further down.

Learn more

Achievement

A milestone of successful classes or recommendations

Achievements mark milestones on a teacher's profile: 100, 1,000, 5,000 and 10,000 successful classes (free trials included), and 1, 10 and 100 recommendations — one recommendation is 100 plus points from student reviews. Once earned, an achievement stays.

Booking period

How many days ahead students can book a teacher (24 days for every teacher)

The booking period is how far ahead a teacher's timetable is open. It is 24 days from today for every teacher, whatever their reputation or achievements, for paid classes and free trials alike. PayPal lets a held payment be charged for only 29 days, and the teacher charges the fee when saving the lesson review, at most 96 hours (4 days) after the lesson. Since 24 + 4 = 28 days, even the latest charge stays within that limit. A teacher may set a shorter period but not a longer one, and bookings already made stay if it shrinks.

Learn more

Payment channel

Where a teacher receives class fees: a PayPal business account

The payment channel is the PayPal business account a teacher connects to receive class fees — the only payment method on SONUB. You connect it by saving your Live app's Client ID and Secret in the Payment settings tab of your teacher profile, and you must connect it to take bookings. SONUB checks the keys with PayPal before saving and tells you if PayPal stops accepting them. Card links, bank transfers and other apps cannot be used.

Learn more

Booking status

What Booked, free trial and Cancelled mean for a class

A paid class is booked only after PayPal confirms the payment, so it is never left unpaid — it shows as Booked at once. A free trial shows as Booked · free trial. A cancelled class shows who cancelled it, and whatever was paid and not yet refunded goes back through PayPal automatically. No other student can take a booked time.

Payment confirmation

PayPal’s confirmation that the payment went through

PayPal confirms each payment to SONUB directly, so no one has to check anything by hand. As soon as PayPal confirms a payment, the class is booked. If PayPal does not complete the payment, no class is booked and nothing is charged.

Cancellation fee

The part of the fee a student loses by cancelling late

Under the default terms, a student who cancels a paid class within 30 minutes of booking or 24 hours or more before the start loses nothing; otherwise the fee is 5% (12–24 hours), 10% (6–12), 20% (1–6) or 25% (under 1 hour). Teachers may choose full-refund terms instead. SONUB does not calculate, hold or pay this money.

Cancellation terms

The refund rules fixed when the booking was made

Each booking keeps a copy (a snapshot) of its price and of the cancellation and refund terms that applied when it was made. If the teacher changes their terms later, only new bookings use the new ones. Teachers choose between the default table and a full refund for any cancellation before the start.

Free trial

One free class of 25 minutes or less with each teacher

Each learner can take one free trial with each teacher, with no limit on how many teachers. It applies automatically to a class of 25 minutes or less from a teacher who has a SONUB rating and has turned free trials on. A student can cancel it up to 60 minutes before the start, or within 10 minutes of booking, and get the trial back.

Learn more

Trial recovery

Getting a used free trial back to take again

If a free trial did not go well, the student can ask for recovery within 96 hours after it ends. The teacher decides; if they do not answer within 24 hours the trial is recovered, and if they refuse, an administrator decides. A recovered trial can be booked again with the same teacher. Cancelling a trial in time also recovers it.

Learn more

SONUB rating

One to five stars that only administrators give a teacher

The SONUB rating is 1 to 5 stars given only by SONUB administrators, separate from student reviews. Each star adds 10 points to the ranking score, and only teachers with a rating can offer free trials.

Dispute evidence

SONUB's record of a booking, kept for disagreements

Dispute evidence is what SONUB recorded about a booking: the agreed terms, attendance from the video classroom and messages sent on SONUB. You can download it as a PDF, or the exact record as JSON, with a hash to check it was not changed. Classes in other rooms or tools and talks outside SONUB are not in it, and it does not prove payment.

Response to a report

The reported side's explanation, within 7 days

When a booking is reported, the other person can respond with their side and evidence within 7 days. An administrator decides only after that period, writing down the reasons and records used. A report alone never confirms a problem or suspends an account.

Appeal

Asking for a decision to be looked at again

If you disagree with an administrator's decision on a report, such as a restriction, you can appeal it with your reasons. The appeal and its result are kept in the record. SONUB stays neutral and does not judge who is right about money.

Booking restriction

A limit set by an administrator after a confirmed problem

An administrator applies a restriction only after a problem is confirmed — for example the other side admits it, SONUB's records show it, or 3 or more different people report the same kind of problem. Teachers can choose to refuse bookings from restricted payers automatically. The person is told the reasons, gets 7 days to respond and can appeal.

Building reputation

Too few different partners yet to judge reputation

A member is building reputation until SONUB's records show classes with at least 3 different partners; a student manager's learners count as one payer. It only means there is little history, not a bad one. Teachers can choose whether to accept payers still building, and students can hide teachers who are.

Identity verification

An optional check of a teacher's ID by administrators

A teacher may send an ID document and a proof of address (from the last three months where it applies) for an administrator to check; it is not needed to take bookings. SONUB keeps only the result and deletes the originals within 30 days. Passing shows Verified identity, and students can filter for it. It does not guarantee teaching quality or payment.

Learn more

Attitude evaluation

Rating the other side's conduct, not the lesson

After a class, the student and the teacher may each rate the other's conduct from −3 to +3 within 360 hours (15 days) — for example repeated lateness, rudeness, or asking for money after an unpaid class. A negative score needs a reason. It counts twice as much as a lesson review in reputation, and both sides' scores are revealed together.

Lesson review

Rating one class, within 72 hours after it ends

Within 72 hours (3 days) after a class, the student may score the teacher's lesson from −3 to +3, with lateness, teaching and preparation, and the teacher writes feedback on the learner's listening, speaking, reading and writing (1–9). Student scores appear on the teacher's profile; learner feedback stays private. After the deadline no one can review.

Double-blind reveal

Reviews stay hidden until both submit or time runs out

Neither side sees the other's review until both have submitted or the deadline passes — 72 hours for lesson reviews, 360 hours for attitude evaluations. This stops anyone changing a review after seeing the other one. You can edit or delete your own review only until it is revealed.

Learner level

A learner's level in each skill, from teachers' feedback

Teachers rate a learner's listening, speaking, reading and writing from 1 to 9 after each class (1–3 beginner, 4–6 intermediate, 7–9 advanced). From the first published review, each skill's level is the average of the latest reviews, up to 30, rounded up. Only the learner, their student manager and their teachers can see it.

Session level

The average of all scores a teacher gave in one class

The session level is the exact average of the skill scores (1–9) the teacher gave in a single class, kept as a decimal. It describes that one class only; the learner level averages many classes.

Student manager

The person who books and pays for a learner's classes

A student manager is a parent, school teacher or organization that books, pays for and manages classes for learners — for example a parent for a child. One learner belongs to one student manager. Payment records count toward the student manager's reputation; attendance and levels belong to the learner. An adult studying alone is both learner and their own student manager.

Learn more

Learner

The person who actually takes the class

The learner is the one who takes the class, while the student manager books and pays. New learners added by a student manager are always created with a student ID, minors included. Free trials, class times and levels are counted per learner.

Student ID

A login a student manager creates for a learner

A student manager creates a student ID with a name, an ID and a password; SONUB turns it into the login ID@sonub.com. An ID has 3–30 lowercase letters, numbers, dots, underscores or hyphens and starts with a letter or number; the password has 8 or more characters. With it the learner sees and joins their own classes and chats, but cannot book, pay, cancel or review.

Learn more

Room address

The web address of a video room, starting with /c/

Video room addresses are short numbered addresses that start with /c/. A lesson room is /c/booking/teacher number-student number/enter, one for each teacher and student pair, and a meeting room is /c/meeting/room number/enter, made by an administrator. Anyone with the address can come in, but only the teacher and learner of the booking count as attending.

Learn more

Video classroom

SONUB's own video room that runs in the browser

The video classroom is SONUB's built-in video room with camera, microphone, screen sharing and a whiteboard, all in the browser with nothing to install. It runs on the open-source LiveKit on SONUB's own server, which records who joined and left. Only classes in a lesson room (one room for each teacher and student pair) count toward reputation and dispute evidence.

Learn more

Class recording

Recording a class in the room owner's own browser

Only the room owner's browser records a class, and the file stays on that computer — SONUB does not store the video, and it is not used as dispute evidence. Recording is off by default; everyone in the room is told when it starts and sees a recording sign. Use Chrome or Edge on a computer.

Time together

How long teacher and learner were in the room at once

From the classroom's join and leave records, SONUB measures how long the teacher and the learner were both in the room during the class time. A class is completed properly when this is at least 90% of its length — 45 minutes of a 50-minute class. The result is judged a few minutes after the class ends.

Successful class

A finished class both sides attended for 90% of it

A successful class is a finished class where SONUB's video records show the teacher and the learner together for at least 90% of the class length. Free trials count. Cancelled or missed classes, classes under dispute and classes held with other video tools do not. Successful classes feed the ranking score, the reputation rate and achievements.

Absence

Never entering the classroom before the class ends

An absence means never entering the teacher's room before the class ended; entering at any point is lateness instead, and the minutes late are recorded. It is judged from the classroom records after the class. A teacher's absence is −3 reputation; a learner's absence (a no-show) counts in the payer's reputation. With no records at all, SONUB does not judge.

Booked classes not on your timetable

Bookings whose time slot you removed from your timetable

If you change or delete a time slot after students booked it, those bookings stay. SONUB lists them on your own schedule page so you can still teach or cancel them; students and guests do not see this list.

Learn more

class bot

SONUB's read-only bot that sends class notices in chat

The class bot sends booking news as chat messages, which also arrive as push notifications: new bookings, cancellations and refunds, upcoming classes and reviews. SONUB also leaves read-only system messages in the one-to-one chat between student and teacher. You cannot reply to the bot, and messaging a teacher does not cancel a booking — use the Cancel button.

Intermediary

SONUB connects students and teachers but is not a party

SONUB introduces teachers, runs bookings and the video classroom and keeps records, but it does not take, hold or pass on class fees and is not a party to the deal between student and teacher. In a dispute it stays completely neutral: it does not judge the truth about money, only facts in its own records and patterns repeated by different people.

Learn more

0% commission

SONUB takes no cut of class fees

SONUB charges teachers and students no commission or usage fee. Students pay the whole class fee on PayPal, straight into the teacher's PayPal business account, so there is no payout to wait for. PayPal's own fees may still apply under PayPal's rules.

Learn more

Management score

Points for writing learner feedback on time

The management score is the share of finished classes (free trials included) for which the teacher wrote learner feedback within 72 hours, times 10 — so 0 to 10 points added to the ranking score. Giving learners high marks earns nothing extra; only writing on time counts.

AI teacher certificate

SONUB's Grade 3 to Grade 1 qualification for teaching AI

SONUB grades AI teachers from Grade 3 to Grade 1 — the smaller the number, the higher the grade. Teaching AI needs Grade 1; English and other fields need no certificate. You study with the AI Course, then take a video interview with your whole screen shared, where quick answers and quick work matter. Applications are not open yet.

Learn more

SONUB dictionary

Shell

152 terms

Shell

The program that reads your commands and runs them

The shell is the program behind the terminal window. It shows the prompt, reads the line you type, finds the program you named and runs it, then shows the result. Bash and zsh are the most common shells, and a shell script is simply a file full of the same commands.

Learn more

bash

The most widely used shell; zsh is the macOS default

Bash is the standard shell on Linux servers, and most scripts on the internet are written for it. macOS uses zsh by default, which runs almost everything in this course unchanged. Putting #!/bin/bash on the first line of a script makes it run with bash on either system.

Prompt

The sign that the shell is waiting for a command

The prompt is the text at the start of the line, often ending in $ (bash) or % (zsh), sometimes with your user name and current folder in front. When you see it, the shell is ready: type one command and press Enter. If it changes to >, the shell thinks your command is unfinished, usually because a quote is still open.

Command

One instruction you type for the shell to run

A command line usually has three parts: the command itself (what to do), options (how to do it, starting with -) and arguments (what to do it to). The words are separated by spaces, and the shell treats upper and lower case as different letters.

Option

A switch starting with - that changes how a command works

Options, also called flags, start with a dash: one dash for short letters like -l, two dashes for long names like --help. Short options can be combined, so ls -l -a and ls -la mean the same. Some options take a value, as in head -n 3.

Argument

The target a command works on

Arguments are the words after the command and its options, usually file names, folders or text. The shell splits them at spaces, so a name that contains spaces must be quoted. Inside scripts and functions, $1, $2 and so on hold the arguments, and $# counts them.

Path

The address of a file or folder

A path names the folders to walk through, separated by /. An absolute path starts at the root / and works from anywhere; a relative path starts from where you are now. . means the current folder, .. its parent and ~ your home folder.

Current folder

The folder the shell is working in right now

Every command runs “in” a folder, called the current folder or working directory. Relative paths start from it, and new files land in it. pwd shows it, cd changes it, and . is its short name.

Home folder

Your own folder, written as ~

Every user has a home folder, such as /home/learner or /Users/name. The shell writes it as ~ and opens new terminals there. Your documents and hidden settings files like .bashrc live in it, and cd with nothing after it takes you back.

Hidden file

A file whose name starts with a dot

Files and folders whose names begin with . are left out of a plain ls. They usually hold settings, such as .bashrc, .zshrc or .gitignore. ls -a shows them, and in that list . and .. stand for the current folder and its parent.

Case-sensitive

Upper and lower case count as different letters

The shell treats capital and small letters as different: ls works but LS does not, and on Linux notes.txt and Notes.txt are two separate files. macOS usually treats file names as equal regardless of case, but commands and variables are still case-sensitive.

Variable

A name that stores a value for later

Create a variable with name=value, with no spaces around =, and read it with $name. Always read it inside double quotes, "$name", so spaces in the value stay together. Names are case-sensitive, and ${name} marks exactly where a name ends.

Quotes

How double and single quotes protect text

Double quotes keep text together but still expand variables and $(commands), so "$name" is the safe way to read a variable. Single quotes keep everything exactly as written: '$name' prints $name. Without quotes, the shell splits a value at spaces and turns * or ? into file names.

Arithmetic expansion

Doing whole-number math with $(( ))

$(( expression )) calculates and puts the result in its place, with + - * / and % for the remainder. Inside it, variables can be used without $. It works with whole numbers only, so 7 / 2 gives 3; use awk or python3 for decimals. (( )) on its own does math without printing, as in ((count++)).

Command substitution

Using a command's output inside another command

$(command) runs the command and puts its output right there, so you can store it in a variable or place it in a sentence. Wrap it in double quotes to keep spaces and line breaks. An older form uses backticks, but $( ) is easier to read and can be nested.

Parameter expansion

Reshaping a variable's value with ${ }

${ } does more than read a variable. ${name:-default} gives a fallback when the value is empty, ${#name} its length, ${name^^} upper case, ${path##*/} only the file name, and ${file%.txt} the name without an ending. No extra command is needed.

Brace expansion

Writing many similar words at once with { }

Braces expand into several words before a command runs: {a,b,c} gives three words and {1..5} a range, so mkdir day{1..3} makes day1, day2 and day3. It only generates text, so the files do not need to exist.

Array

A variable that holds a list of values

An array keeps several values under one name: fruits=(apple banana). ${fruits[0]} reads one item, "${fruits[@]}" all of them, and ${#fruits[@]} counts them. Bash counts from 0 and zsh from 1. declare -A makes an associative array whose keys are words instead of numbers.

Conditional

Choosing what to run depending on a condition

A conditional runs commands only when something is true. In the shell that is if … then … fi, with elif and else for more paths, or case to match one value against patterns. The condition is itself a command, and its exit code decides: 0 means true.

Loop

Repeating commands several times

A loop repeats commands. for goes through a list of items, while repeats as long as a condition holds, and until repeats until it becomes true. Loops are how a script handles a hundred files as easily as one.

Function

A named group of commands you can call again

name() { commands; } defines a function; after that, typing name runs it like a new command. Values given after the name arrive as $1, $2 and so on, and $@ holds them all. Use local for variables that should stay inside, and return to hand back an exit code.

Script

A file of shell commands run from top to bottom

A script is a text file, usually ending in .sh, that holds the commands you would otherwise type. Run it with bash script.sh, or give it a shebang line and chmod +x and run ./script.sh. Scripts turn repeated work into one command, and AI tools usually automate tasks this way.

Shebang

The #! first line that picks the interpreter

A script's first line, starting with #!, tells the system which program should run the file: #!/bin/bash for bash, #!/usr/bin/env python3 for Python. It is used when you run the file directly as ./script, and it makes the script behave the same on macOS and Linux.

Executable permission

Permission to run a file as a program

Each file has read (r), write (w) and execute (x) permissions for its owner, its group and everyone else, which ls -l shows. A new script usually lacks x, so ./script.sh fails with Permission denied. chmod +x adds it, and bash script.sh works even without it.

Exit code

The number a command returns; 0 means success

Every command ends with an exit code: 0 for success, any other number for failure. $? holds the code of the last command. && runs the next command only after a success and || only after a failure, so command || exit 1 stops a script safely. if uses the same rule.

Pipe

The | that sends one command's output into another

commandA | commandB connects A's standard output to B's standard input, so small tools combine into one line. Data flows as soon as it is produced, and each stage can filter, sort or count. A pipeline can have many stages. Only normal output goes through, not error messages, unless you add 2>&1.

Redirection

Sending output to a file, or reading input from one

> file saves a command's output into a file and replaces what was there; >> file adds to the end instead. < file feeds a file in as input. 2> file saves only the error messages, and 2>&1 sends errors to the same place as normal output.

Standard input and output

The three data streams every command has

Every command has three streams: standard input (0) where it reads, standard output (1) where normal results go, and standard error (2) for error messages. By default input comes from the keyboard and both outputs go to the screen. Pipes and redirection reconnect them, and /dev/null is a bin that throws output away.

Heredoc

Passing several lines as input with <<

A heredoc feeds the lines that follow into a command, up to a line holding only the closing word, such as EOF. Quote the opening word, as in <<'EOF', to pass the text exactly as written; unquoted, the shell first replaces the $variables inside. The closing word must start at the very beginning of its line.

Subshell

A child shell whose changes do not come back

Commands inside ( ) run in a separate child shell, so a cd or a variable change made there disappears when it ends, which is handy for a temporary change. Each stage of a pipe may also run in a subshell, so a variable set inside a piped while loop can be empty afterwards.

Globbing

Turning * and ? into matching file names

Before a command runs, the shell replaces patterns with the file names that match: * means any characters, ? exactly one and [abc] one of those. So rm *.txt deletes every .txt file here. Quotes stop globbing, and if nothing matches, bash leaves the pattern as it is.

Word splitting

An unquoted value breaking apart at spaces

After expanding an unquoted $variable, the shell splits the result into separate words at spaces, tabs and new lines, the characters listed in IFS. A file name like my file.txt then becomes two arguments. Writing "$var" prevents it, which is why quoting is the first safety rule.

Regular expression

A pattern language for matching text

A regular expression describes the text to find: ^ is the start of a line, $ the end, . any character, * zero or more of what comes before, and [0-9] one digit. grep, sed, awk and [[ =~ ]] all use them. They are not the same as globbing, even though both use *.

Environment variable

A setting passed on to every program you start

Environment variables are exported variables that programs inherit: HOME is your home folder, USER your name, and PATH the list of folders searched for commands. export NAME=value makes one; add that line to ~/.bashrc or ~/.zshrc to keep it. command not found often means a folder is missing from PATH.

Background job

A command that keeps running while you do other things

Adding & to the end runs a command in the background and gives the prompt straight back. jobs lists background jobs, fg brings one to the front, and wait pauses a script until they all finish. Several slow jobs can run side by side this way.

Process substitution

Using a command's output as if it were a file

<(command) runs the command and hands its output to another program as a temporary file name. It helps when a command wants file names rather than a pipe, for example comparing two sorted lists with diff.

Node.js

A runtime that runs JavaScript outside the browser

Node.js lets JavaScript run in the terminal and on servers. It powers web servers, build tools and many command-line tools, including several AI coding agents. Installing it gives you the node and npm commands, and nvm makes installing and switching versions easy.

Package

A reusable bundle of code you install

A package is code someone published so others can reuse it; npm downloads packages into node_modules. A project's package.json lists its name, its scripts and its dependencies, the packages it needs, so npm install can set up the same environment on any computer.

Named pipe (FIFO)

A pipe that has a file name

A named pipe, made with mkfifo, looks like a file but stores nothing: what one command writes into it is read by another, first in, first out. It connects commands that are not in the same pipeline, as in the web server example on this page.

Sandbox terminal

The safe practice Linux on this page

The terminal on this page is a real Linux (Alpine + bash) running inside your browser, separate from your own computer. Nothing you type can harm your device, and refreshing the page or resetting the session brings back a clean start. It is connected to the internet, so you can install anything with apk add, pip install, npm install -g or git clone — refreshing puts everything back as it was.

Built-in variable

A variable the shell fills in for you

Bash keeps some variables up to date by itself. $PWD is the folder you are in, $HOME is your home folder, $? is the exit code of the last command, $RANDOM is a new random number each time, and $1, $2 … are the arguments given to a script or function. You read them like any other variable, but you normally do not set them yourself.

String

A piece of text used as a value

In programming, text is called a string: a row of characters such as "hello" or "a,b,c". Every shell variable holds a string, so even 42 is just the characters 4 and 2 until you do arithmetic with it. Quotes mark where a string starts and ends, ${#name} gives its length, and ${name:0:2} takes a part of it, called a substring.

Signal

A short notice the system sends to a running program

A signal tells a running program that something has happened. Ctrl+C sends SIGINT (interrupt), the kill command sends SIGTERM (please finish), and bash raises EXIT when a script ends. A program may stop at once, or catch the signal with trap and clean up first. SIGKILL cannot be caught — the program is simply ended.

Child process

A program started by another program

Every running program is a process with its own number, the process ID. When the shell runs a command, it starts a new process — a child process — and waits for it to finish. A child gets a copy of the exported variables but cannot change the variables or the folder of its parent. That is why export is needed, and why a cd inside a script does not move your terminal.

Here string

Feed one short line of text into a command

<<< passes the text after it to a command as its input, as if it had been typed in or piped from echo. It is the one-line cousin of the heredoc, and it saves starting an extra echo. The shell adds a line break to the end of the text.

Parent folder

The folder one level up, written ..

The parent folder is the folder that contains the one you are in. Its short name is .., so cd .. moves up one level and ../notes.txt points to a file that sits next to your current folder. mkdir -p creates any missing parent folders along a path. The root / has no parent, so cd .. there simply stays at /.

Recursive

Going into every folder inside a folder, all the way down

A recursive command works on a folder, then on every folder inside it, then on every folder inside those, until nothing is left. The option is usually -r or -R: ls -R lists everything, grep -r searches every file, cp -r copies a whole folder and rm -r deletes one. Because it reaches everything below, check the path twice before rm -r.

Overwrite

Replacing a file's old contents with new ones

To overwrite is to write over a file that already exists, so its old contents are gone for good. The shell does this without asking: > file empties the file first, and cp or mv onto an existing name replaces that file. Add -i to cp and mv to be asked first, use >> to add to the end instead, and set -o noclobber stops > from replacing a file. The terminal has no trash can to undo it.

Expansion

The shell rewriting $, {}, * and ~ before a command runs

Before running a line, the shell expands it: it swaps special forms for their results. $name becomes the variable's value, $((2 + 3)) becomes 5, $(date) becomes that command's output, {1..3} becomes 1 2 3, *.txt becomes the matching file names and ~ becomes your home folder. The command only sees the finished text. Inside single quotes, nothing is expanded.

&& and ||

Running the next command only on success, or only on failure

A && B runs B only when A succeeds, which means its exit code is 0. A || B runs B only when A fails. Together they let one line react to a result without writing an if. A common mistake is reading A && B || C as if-else: C also runs when B itself fails.

Variable scope

Where a variable can be seen and changed

Scope is the part of a script where a variable exists. A normal variable is visible to the whole script, even inside functions. Write local inside a function and that variable belongs to the function and disappears when it returns. Changes made inside a subshell ( ) never come back out, and other programs only receive the variables you export.

Field

One piece of a line after it is split, like a table column

Tools such as awk and cut split each line into pieces called fields, or columns. awk splits at spaces by default and calls the pieces $1, $2 and so on; NF is how many there are and $0 is the whole line. For a CSV file you set the delimiter to a comma, as in awk -F, or cut -d ','. Counting starts at 1, not 0.

Delimiter

The character that marks where one piece ends

A delimiter, or separator, is the character that divides text into pieces: the comma in a CSV file, the colon in $PATH, the space between words. Tools let you choose it: awk -F, and cut -d ',' split on commas, and IFS sets where the shell splits words. sed s/a/b/ uses / as its delimiter too, and accepts another one such as s|a|b| when the text itself contains /.

Comment

A note after # that the shell skips

A comment is a note for people. When a word starts with #, the shell ignores everything from there to the end of the line. Use comments to explain why a script does something. The first line #!/bin/bash looks like a comment but is the shebang, which picks the program that runs the script. A # inside quotes or in the middle of a word is plain text.

File extension

The ending after the last dot in a file name, like .txt

The extension is the part of a file name after the last dot: .txt, .sh, .py, .csv. It tells people and many programs what kind of file it is. The shell on Linux and macOS does not need it: a script runs because of its permission and shebang, not because its name ends in .sh. Renaming photo.png to photo.txt does not change what is inside.

Tab completion

Pressing Tab to let the shell finish a name

Tab completion means pressing the Tab key while typing a command, file or folder name: the shell completes the rest if only one name fits, and pressing Tab twice lists the choices if several fit. It saves typing and prevents spelling mistakes in long paths.

Dry run

A rehearsal that shows what would happen without doing it

A dry run executes a command or script in a mode that only shows what it would do, without changing anything. In a shell loop you get one by putting echo in front of the real command; many tools also have a --dry-run option. It is the safest way to check a command that moves or deletes files.

Lock file

A file that records the exact versions of installed packages

A lock file such as package-lock.json records the exact version of every package that was installed, including the packages they need. Committing it means every computer and every automatic build installs the same versions, so the project behaves the same everywhere.

REPL

An interactive prompt that runs each line as you type it

A REPL (Read–Eval–Print Loop) reads one line of code, runs it, prints the result and waits for the next line. Typing node or python3 on its own opens one. It is ideal for trying small ideas quickly without creating a file.

Global install

Installing a tool for the whole computer with npm install -g

npm install -g puts a package in one shared place on your computer and its command in a folder on PATH, so you can run it from any folder. A normal npm install puts the package only in that project's node_modules. npm config get prefix shows where global installs go. If -g fails with a permission error, fix it with nvm rather than sudo. To try a tool once, npx runs it without a global install.

Install script

A shell script for installing a program, fetched and run at once with curl -fsSL URL | bash

An install script is a shell script (install.sh) with the commands that install a program. curl -fsSL URL | bash is the one line in which curl fetches the script at that URL and a pipe (|) hands it to bash to run at once. Claude Code, Bun and uv install this way. Because whatever arrives is run as it is, use only the https URL from the official documentation, and it is safer to look at it first with | head or save it with -o and read it.

Learn more

Basic grammar (BRE)

The regex style grep and sed use by default

BRE (Basic Regular Expressions) is the regex style grep and sed read when you add no option. In it, + ? | ( ) { } are plain characters, so to use them as features you put a backslash in front: \+ \| \( \{. That is why grep 'a|b' looks for the text a|b, not a or b.

Extended grammar (ERE)

The regex style you turn on with -E

ERE (Extended Regular Expressions) is the regex style you get with grep -E or sed -E. Here + ? | ( ) { } work as features as they are, with no backslash, so patterns are shorter and easier to read. When in doubt, add -E. Even in ERE, \d is not a digit, so write [0-9].

Perl-style regex (PCRE)

Regex with shortcuts such as \d \w \s

PCRE (Perl Compatible Regular Expressions) is the regex style that came from the Perl language. It adds shortcuts like \d (a digit), \w (a word character) and \s (whitespace), and lazy repeats like .*?. Python, JavaScript, PHP and rg use it, and grep -P turns it on in GNU grep. grep -E and sed do not understand \d.

Greedy matching

A repeat grabbing as much text as it can

Repeats such as * + {n,m} are greedy: they take the longest text that still lets the pattern match. So ".*" on a line with two quoted words takes everything from the first quote to the last one. To stop earlier, narrow what may repeat, as in "[^"]*", or use a lazy repeat .*? where PCRE is available.

Capture group

Text matched inside ( ) that you can use again

Parentheses ( ) turn several characters into one unit, so (ab)+ repeats ab. They also remember the text they matched, and you can take it out again: \1 \2 in sed, ${BASH_REMATCH[1]} in bash and m.group(1) in Python. That is how you reorder the parts of a date in one line.

Escape

Putting \ in front so a symbol counts as a plain character

Many characters in a regex have a special meaning, such as . (any character) and * (repeat). To look for the character itself, escape it by putting a backslash \ in front: \. is a real dot and \* is a real star. A common mistake is writing an IP address with plain dots, which then match any character.

BASH_REMATCH

The bash array holding what [[ =~ ]] matched

After [[ $value =~ pattern ]] succeeds, bash puts the whole match in ${BASH_REMATCH[0]} and each ( ) group in ${BASH_REMATCH[1]}, ${BASH_REMATCH[2]} and so on. The next =~ test overwrites it, so copy the values into your own variables right away. zsh, the default shell on macOS, fills $match instead unless you turn on its BASH_REMATCH option.

POSIX character class

A named set of characters such as [[:space:]]

A POSIX character class is a named set written inside brackets: [[:digit:]] for digits, [[:alpha:]] for letters, [[:alnum:]] for letters and digits, and [[:space:]] for whitespace. Unlike \d or \s, they work in grep and sed everywhere, macOS included. Note the double brackets: the outer pair is the list, the inner [: :] is the name.

GNU and BSD versions

Two families of the same commands with small differences

Commands like grep and sed come in two families. Linux ships the GNU versions, which add extras such as grep -P and understand \s in sed. macOS ships the BSD versions, where grep -P is missing and sed -i needs '' after it. Scripts that use -E and POSIX classes such as [[:space:]] work the same on both.

Command Prompt (cmd)

The classic Windows command window

Command Prompt (cmd.exe) is the classic command window on Windows. Its commands differ from bash: dir instead of ls, type instead of cat and findstr instead of grep. Its regex support is small, so for regular expressions on Windows, PowerShell or WSL is the better choice.

PowerShell

The modern command shell built into Windows

PowerShell is the command shell and scripting language that comes with Windows. Its commands are named verb-noun, such as Select-String and Get-ChildItem. It uses .NET regular expressions, so \d \w \s and ( ) groups work as they are. It also runs on macOS and Linux.

WSL (Windows Subsystem for Linux)

A way to run real Linux inside Windows

WSL lets Windows run a real Linux system, such as Ubuntu, without a second computer. Inside it you get bash and the GNU grep, sed and awk exactly as on Linux, so everything in this course works the same. Install it once from PowerShell with wsl --install.

partition

A separate section of a disk

A partition is a section of a disk that the system treats as a drive of its own. The partition table at the start of the disk records where each one begins and ends. On Linux a partition is named after its disk plus a number — sda1, sda2 — and it must be formatted before it can hold files.

file system

How a disk keeps its files and folders

A file system is the structure written onto a partition that keeps track of files and folders: their names, where their data sits and who owns them. ext4 is the usual one on Linux, FAT and exFAT suit USB sticks, NTFS belongs to Windows and APFS to macOS. Formatting creates an empty one.

virtual environment

A private set of Python packages for one project

A virtual environment (venv) is a folder with its own Python and its own pip, so the packages you install go into it instead of into the system. python3 -m venv makes one, source …/bin/activate switches it on and the prompt shows (venv), and deactivate switches it off.

Ctrl+C

The key that stops the command running now

Holding Ctrl and pressing C sends the running program an interrupt signal (SIGINT), and most programs stop and give you the prompt back. Use it when a command seems stuck, or to stop a server or a log you are watching. It does not undo what the program already did, and in the terminal it does not copy text.

Learn more

Ctrl+D

The key that says "no more input" (end of file)

Ctrl+D tells the program reading the keyboard that the input has ended — the same signal a program gets at the end of a file (EOF). On an empty line it closes a REPL such as node or python3, and in a shell it logs you out of that shell. Unlike Ctrl+C it does not interrupt anything; it only ends the input.

Ctrl+Z

The key that pauses the running command in a shell

In a terminal, Ctrl+Z pauses the program in front and gives you the prompt back. The program is not finished: fg brings it back to the front and bg lets it keep running in the background. In ordinary apps the same keys mean undo, but in a shell they mean pause.

Ctrl-L

The key that clears the terminal screen

Ctrl-L wipes the terminal screen and puts the prompt at the top, just like the clear command. Nothing is deleted: your files, variables and command history stay as they were, and you can usually still scroll up to see older output.

↑ ↓ keys

Bring back commands you typed before

The shell remembers the commands you ran. Press ↑ to put the previous command back on the input line; press it again to go further back, and ↓ to come forward again. You can edit it, then press Enter to run it.

Destructive command

A command that deletes or overwrites with no way back

A destructive command removes or overwrites something so that it cannot simply be undone: rm -rf, git reset --hard, git push --force, mkfs. Read every one before you run it, even when an AI suggested it, and check the target first with a harmless command such as ls or git status. Git can sometimes recover lost commits with reflog, but files deleted by rm do not go to a trash can.

Session

One stretch of using a shell, from opening to closing it

A shell session lasts from the moment a terminal (or a login) starts a shell until you close it or type exit. Variables you set and folders you cd into live only inside that session, so a new terminal starts fresh; lines you want in every session go into ~/.bashrc or ~/.zshrc. On this page, Reset session throws the practice Linux away and starts a blank one.

--version

The option that prints which version of a tool is installed

Almost every command-line tool prints its version number when you add --version. It is the quickest check after installing something: a number means the shell found the program, while command not found means it is missing or not on the PATH. Some tools also accept a short -v or -V, but -v means verbose in others, so --version is the safe spelling.

command not found

The shell's error when it cannot find a command by that name

The shell looks for a command name only in the folders listed in PATH. If none of them has it, it prints command not found (exit code 127). The usual causes are a typo, a program that is not installed, or one that was just installed into a folder this terminal does not know yet — open a new terminal, then check with which and echo $PATH. A script in the current folder needs ./ in front, because the current folder is normally not on the PATH.

Directory

Another word for a folder

A directory is what Linux and the command line call a folder: a place that holds files and other folders. The two words mean the same thing, which is why commands are named after it — pwd is "print working directory" and mkdir is "make directory". Directories nest inside each other to form one tree that starts at /.

BEGIN and END

awk blocks that run once before and after all lines

In awk, a BEGIN { … } block runs once before the first line is read, and an END { … } block runs once after the last line. BEGIN is for setup such as a separator or a title; END is for results such as a total or an average. A program with only BEGIN reads no input at all, so awk can serve as a calculator.

Learn more

NF and NR

awk variables: fields in this line, and the line number

awk fills two variables for every line it reads. NF is the number of fields in the current line, so $NF is the last field. NR is the number of the current line, counted from 1, so NR > 1 skips a header line and NR in the END block is the total number of lines.

Learn more

Formatting a disk

Writing a new, empty file system onto a partition

Formatting writes a fresh file system onto a partition — the list that remembers each file's name, where its contents are and who owns it. Without it a partition cannot hold files. On Linux you format with mkfs (mkfs.ext4, mkfs.vfat). Whatever was on that partition is gone afterwards, so check the name with lsblk first.

Learn more

/dev

The folder where Linux shows devices as files

Linux shows every device as a file under /dev: the first disk is /dev/sda, its first partition /dev/sda1. That is why disk commands take a path such as /dev/sda. Some entries are not hardware: /dev/null swallows whatever is written to it. Writing to a disk file under /dev directly can destroy its contents.

Learn more

Device

A piece of hardware, such as a disk, that Linux handles as a file

A device is hardware the computer talks to — a disk, a USB stick, a terminal. Linux gives each one a file under /dev so ordinary tools can reach it. Disks are block devices: they are read and written in fixed-size blocks, which is what lsblk (list block devices) lists. When mounting, the device comes first and the folder second.

Learn more

sda

Linux's name for the first disk; sda1 is its first partition

Linux names disks sda, sdb, sdc … in the order it finds them, and numbers their partitions: sda1, sda2. In the practice terminal sda is an empty 128 MB disk. On a real computer sda may be the disk the system runs from, and NVMe disks have other names such as nvme0n1 — always check with lsblk before changing anything.

Learn more

Drive letter (C:, D:)

The letter Windows gives each disk or partition

Windows names each disk or partition with a letter and a colon — C: for the system disk, D: and up for others — and each letter has its own tree of folders. Linux and macOS have no drive letters: there is one tree starting at /, and a disk is attached to a folder inside it by mounting.

Learn more

ext4

The usual Linux file system

ext4 (fourth extended file system) is the file system most Linux systems use by default. It keeps Linux owners and permissions and writes a journal, so the disk is quickly repaired after a sudden power cut. Windows and macOS cannot read it without extra software, so use FAT for a USB stick you share.

Learn more

FAT

An old, simple file system that Windows, macOS and Linux all read

FAT (File Allocation Table) is an old, simple file system that almost every computer, camera and phone can read, which makes it the usual choice for USB sticks. Linux calls it vfat, so you make it with mkfs.vfat. It has no Linux owners or permissions, and FAT32 cannot hold a single file larger than 4 GB.

Learn more

/etc/fstab

The file listing disks to mount at every start

A mount lasts only until the computer restarts. To make it permanent, add a line to /etc/fstab: what to mount, where, the file system type and options. Use the UUID from blkid rather than a name like sda1, because names can change. Test the line with sudo mount -a before restarting — a wrong fstab can stop a server from booting.

Learn more

Loop device

A device that makes an ordinary file act like a disk

A loop device lets Linux treat a plain file as if it were a disk. You make a file of the size you want, format it and mount it with -o loop; Linux connects it to a device such as /dev/loop0. It is a safe way to practise disk commands without a spare disk, and it is how disk images of virtual machines and installers are opened.

Learn more

/mnt

The usual folder for attaching disks by hand

/mnt is the folder Linux sets aside for mounting a disk by hand for a while. You make an empty folder inside it, such as /mnt/data, and mount a partition there; from then on the files in /mnt/data live on that disk. Disks that the system mounts by itself, such as USB sticks, often appear under /media instead.

Learn more

Mounting

Attaching a disk to a folder; that folder is the mount point

Linux does not give disks letters like C: or D:. Instead it attaches a disk's file system to a folder in its one tree — that is mounting, and the folder is the mount point. After mounting /dev/sda1 on /mnt/data, files saved in /mnt/data go to that partition. A mount lasts until umount or a restart; /etc/fstab makes it permanent.

Learn more

gpt and msdos

The two kinds of partition table: GPT and the older MBR

Before a disk can have partitions it needs a partition table, and parted mklabel makes one of two kinds. gpt (GUID Partition Table) is the modern one: large disks and many partitions. msdos is the older MBR table: at most four primary partitions and disks up to about 2 TB. Making a new table forgets every partition on the disk. Here gpt has nothing to do with the GPT in ChatGPT.

Learn more

Sector

The smallest unit a disk reads and writes

A disk is divided into sectors, the smallest pieces it reads or writes at once — traditionally 512 bytes, 4096 bytes on many newer disks. A partition table records where each partition starts and ends as sector numbers, which is why fdisk -l counts in sectors. Starting a partition at 1MiB keeps it lined up with the disk's sectors.

Learn more

target is busy

umount's answer when the folder is still in use

umount refuses with target is busy when something is still using the mounted folder — most often your own shell, because you are standing inside it. Leave first with cd ~, close files and programs that use it, then try again. Detaching a disk while files are being written could lose data, which is why umount checks.

Learn more

EACCES

The error code for "permission denied" when writing a file

EACCES (error: access) is the system's code for "you are not allowed to do this here". You meet it most often with npm install -g, when npm tries to write into a system folder that belongs to root. Do not fix it with sudo; install Node with nvm, or move npm's global folder (its prefix) into your home folder.

Learn more

externally-managed-environment

pip's refusal to install into the system's own Python

Newer Linux systems such as recent Ubuntu and Debian mark their own Python as managed by the system package manager. Then pip install outside a virtual environment stops with externally-managed-environment, so it cannot break programs the system relies on. The fix is a venv: create one, activate it, and install there. --break-system-packages forces it, but can damage the system.

Learn more

No such file or directory

The error when a path points at nothing

No such file or directory means the path you gave does not exist from where you are. The usual causes are a typo, a different capital letter (Linux treats Notes.txt and notes.txt as different), a relative path started from the wrong folder, or a folder you have not made yet. Check with pwd and ls, or create the folder with mkdir -p.

Git Bash

A bash terminal for Windows that comes with Git

Git Bash is installed together with Git for Windows. It opens a bash shell in which Linux-style commands such as ls, grep, sed and ssh work on your Windows files. It is lighter than WSL but is not a full Linux: Linux programs and packages cannot be installed into it.

Backslash

The \ character: turns off the next character's meaning

In the shell a backslash in front of a character makes it plain text: \$ is a dollar sign, not a variable, and \ keeps a space inside a name. At the very end of a line it joins the next line to this one. In regular expressions it does the same job (\. is a real full stop), and inside double quotes it protects only $, the backtick, " and \.

Backtick

The backquote character, the old way to write command substitution

The backtick character (on most keyboards the key left of 1) is the old way to put a command's output into a line: a command between two backticks works like $(command). Prefer $( ): it nests without extra backslashes, and a backtick is easy to confuse with a single quote. In Markdown, backticks have a different job — they mark code.

Shell builtin

A command that lives inside the shell itself, such as cd

Most commands are separate programs in a folder on the PATH, but some are part of the shell itself: cd, echo, read, export, set. They must be, because a separate program cannot change the shell's own folder or variables. type tells you which kind a name is, and help (not man) explains a builtin.

Learn more

C-style for

A bash loop that counts with a start, a condition and a step

bash has a second form of for borrowed from the C language: for ((i=1; i<=n; i++)). The three parts set a start value, the condition to keep going, and the step after each round. It is handy when the end of the range is in a variable, because {1..$n} does not work. It is a bash feature, not available in plain sh.

Learn more

Default value

The value used when a variable is empty, as in ${var:-x}

Parameter expansion can fill in a value when a variable is empty or unset. ${var:-x} uses x just this once, ${var:=x} also saves x into the variable, and ${var:?message} stops the script with that message. The colon matters: without it (${var-x}) the default is used only when the variable does not exist, not when it is empty.

Learn more

Defensive script

A script written to stop safely instead of doing damage

A defensive script expects mistakes and stops before they spread. Its habits: set -euo pipefail at the top, every variable in double quotes, required values checked with ${VAR:?}, tools checked with command -v, temporary files cleaned with trap, and -- before names that might start with -. shellcheck finds many of the gaps for you.

Learn more

End of options (--)

-- : everything after it is a name, not an option

Two dashes on their own tell a command that the options are over: whatever comes next is a file name or other argument, even if it starts with -. Without it, a file called -r could be read as an option. Put -- before names that come from variables. npm run uses the same idea to pass the rest on to the script.

Learn more

EOF

End Of File — also the usual end marker of a heredoc

EOF stands for end of file: the point where there is nothing more to read. In a heredoc (<< EOF … EOF) the word EOF is just the chosen end marker — any word works, as long as the closing line holds exactly that word and nothing else. Writing << 'EOF' with quotes keeps $ and backticks inside as plain text. Pressing Ctrl+D at the keyboard sends the same end-of-file signal.

Learn more

File tests

Checks such as -f and -d: does it exist, and what is it?

Inside [[ ]] a dash and one letter asks a question about a path or a value: -e exists, -f is a regular file, -d is a folder, -s is not empty, -r -w -x can be read, written, run. -z asks whether a string is empty and -n whether it is not. Quote the variable when in doubt, and use ! for not.

Learn more

Format string

printf's template with slots like %s and %d

printf's first argument is a format: ordinary text with slots that the next values fill. %s takes text, %d a whole number, %.2f a number with two decimals; %-10s pads to 10 columns on the left, %05d fills with zeros. printf does not end the line by itself, so finish the format with \n. If you give more values than slots, the format is used again.

Learn more

Global variable

A variable seen everywhere in the script, inside functions too

In bash every variable is global unless you say otherwise: a variable set inside a function is still there after the function ends, and it can silently overwrite a variable with the same name elsewhere in the script. Declare a function's own variables with local to keep them inside. This is a different idea from a global npm install.

Learn more

--help

The option that prints a command's short usage guide

Most commands print a short guide when you add --help: the usage line at the top shows the command's pattern, followed by its options. It is quicker than man, which opens the full manual. Square brackets [ ] in the usage line mean optional and ... means you may give more than one. Some tools use -h, and shell builtins answer to help instead.

Learn more

-print0 and -0

Separating names with a null character, safe for spaces

Normally find prints one name per line and xargs splits its input at spaces, so a file called my notes.txt arrives as two names. find -print0 ends each name with the null character instead — the one character no file name can contain — and xargs -0 splits only there. grep -Z and sort -z do the same.

Learn more

Numeric comparison (-eq, -gt)

Comparing numbers in a test: equal, greater, less

In [[ ]] and [ ], numbers are compared with letters: -eq equal, -ne not equal, -gt greater than, -ge greater or equal, -lt less than, -le less or equal. The signs < and > compare text in alphabetical order instead, so "9" > "10" is true. Inside (( )) you may use the usual signs for numbers.

Learn more

2>&1

Send error output to the same place as normal output

Every command has two outputs: normal output (1) and errors (2). 2>&1 sends errors wherever output 1 points at that moment, so > log.txt 2>&1 puts both in one file. Order matters: 2>&1 > log.txt sends errors to the screen, because output 1 still pointed there. In bash, &> log.txt is the short form, and >&2 sends a message to the error output.

Learn more

Semicolon (;)

Runs the next command after this one, whatever happened

A semicolon ends one command so that another can follow on the same line: a; b runs a, then b, whether a succeeded or not. Use && instead when b should run only if a worked. Some shell syntax needs it when written on one line, as in if …; then … fi.

set -euo pipefail

Safety options that stop a script at the first error

Put set -euo pipefail at the top of a script and it stops instead of carrying on after a mistake. -e stops when a command fails, -u stops when an unset variable is used, and -o pipefail makes a pipeline fail if any part of it fails, not only the last. Commands whose failure you expect need || true, or the script stops there.

Learn more

Subcommand

The second word that picks one job of a big tool

Big tools bundle many jobs under one name and pick the job with the second word: in npm install, git commit or docker compose up, install, commit and compose up are subcommands. Options usually follow the subcommand they belong to, and each subcommand has its own help, such as git commit --help.

Special character

A character such as * or $ that has a meaning of its own

Some characters are not plain text to the shell: * ? [ ] are file name patterns, $ starts a variable, | > < & ; join or redirect commands, and quotes, backslashes, # and spaces change how a line is read. Regular expressions have their own set (. * + ? ^ $). To use one as a plain character, put it in single quotes or put a backslash in front.

/usr and /usr/local/bin

System folders where installed programs live

Programs that come with the system live under /usr — the commands themselves mostly in /usr/bin. Programs you install yourself for all users usually go into /usr/local/bin. These folders are on the PATH, which is how the shell finds the commands, and they belong to root, so writing there needs sudo.

/etc

The folder of system settings files on Linux

/etc holds the settings of the whole system and of installed services, as plain text files: /etc/hosts, /etc/fstab, /etc/caddy/Caddyfile. Because a change there affects every user, the files belong to root and you edit them with sudo. Keep a copy before you change one, since a broken file can stop a service from starting.

/tmp

The system folder for temporary files

/tmp is the folder every user and program may use for short-lived files. On many systems it is emptied when the computer restarts, so never keep work there. mktemp makes a file in /tmp with a name no other program will pick.

~/.bashrc and ~/.zshrc

Settings files a shell reads every time it starts

When a new terminal opens, bash reads ~/.bashrc and zsh (the default on macOS) reads ~/.zshrc. Lines you put there — export PATH=…, aliases, nvm setup — apply to every new session. Changing the file does not touch terminals already open: run source ~/.zshrc or open a new terminal. The names start with a dot, so ls -a shows them.

Temporary file

A file used briefly while a job runs, then deleted

A temporary file holds something only while a script works — a half-made list, a download before it is checked. Make it with mktemp so two copies of the script never write to the same name, and remove it with trap … EXIT so it is cleaned up however the script ends. Process substitution <( ) can often avoid one.

.tar.gz

Many files bundled with tar, then compressed with gzip

A .tar.gz file is made in two steps: tar packs many files and folders into one, and gzip makes that one file smaller. It is the usual way to ship source code and programs on Linux; .tgz is the same thing. The tar command does both steps: -c creates, -x extracts, -z uses gzip, -f names the file.

Subfolder

A folder inside another folder

A subfolder is a folder inside another one; it can hold subfolders of its own, which makes a tree. Many commands look only at the folder you name unless you ask them to go deeper: -r for grep, cp and rm, while find goes down by itself unless you limit it with -maxdepth. The folder above is the parent folder, written ..

root (administrator)

The administrator account that may change anything

root is the administrator account of Linux and macOS, also called the superuser. It may change anything: install programs, write in /etc and /usr, format disks. Ordinary users get Permission denied or must be superuser for such jobs, and run one command as root with sudo. Because root can also destroy the system, use it only for the command that needs it.

Root folder (/)

The very top of the folder tree, written /

On Linux and macOS all files hang from one tree, and its top is the root folder, written as a single /. An absolute path such as /home/me/notes.txt is the way from the root down to that file. It is a different thing from the root user, though root's own home folder is /root.

Learn more

Owner

The user a file belongs to — the first in line for permissions

Every file and folder belongs to one user, its owner, and to one group. ls -l shows the owner after the permission letters, and the first rwx group applies to the owner. Files you create are yours; a freshly formatted disk or a system folder belongs to root, so you write there with sudo or hand it over with chown.

rwx

The letters for read, write and execute permission

ls -l starts each line with ten characters such as -rwxr-xr-x. The first says what it is (- file, d folder); then come three groups of r (read), w (write) and x (execute) — for the owner, the group, and everyone else. A dash means that permission is missing. A script needs x before you can run it as ./script.sh.

Pattern

A shape that text or commands follow

A pattern describes a shape instead of one exact text. In the shell it usually means what to look for: *.txt matches every name ending in .txt, and a regular expression such as [0-9]{3} matches any three digits. Commands also have a pattern — their fixed order of command, options and target — which --help shows on its first line.

Learn more

Matching

Checking whether text fits a pattern

Matching means comparing text with a pattern and finding the parts that fit. File name matching (globbing) checks names against * and ?; regular expression matching checks text with grep, sed, [[ =~ ]] or Python's re. If nothing matches, grep prints nothing and returns exit code 1, and an unmatched glob stays as written unless nullglob is on.

Learn more

Substitution (s/find/replace/)

Finding text and replacing it with other text

Substitution means finding text and putting other text in its place. In sed it is written s/find/replace/: it changes the first match on each line, and a g at the end changes every match. Any character can replace the slash, as in s|/old/path|/new/path|. sed only prints the result; -i changes the file itself.

Learn more

sed -i

sed's option to change the file itself

Without -i, sed only prints the changed text; with -i it rewrites the file and there is no undo. -i.bak keeps the original as file.bak first. The suffix form also works the same on Linux (GNU sed) and macOS (BSD sed), where a bare -i fails without a suffix. Run the command once without -i to check the result.

Learn more

Anchors (^ $)

Regex symbols for the start and end of a line

^ matches the start of a line and $ the end, without taking up any characters. ^error finds lines that begin with error, done$ lines that end with done, and ^$ an empty line. Inside brackets ^ means something else: [^abc] is any character except a, b and c.

Learn more

Backreference (\1)

Calling back the text a ( ) group captured

Text caught by the first pair of parentheses can be called back as \1, the second as \2. Inside the pattern it finds the same text again — a word typed twice, for example. In sed's replacement it puts the captured text into the result, which lets you swap or reorder parts.

Learn more

Bracket expression ([abc])

Brackets that match one character from a set

Square brackets match exactly one character from the set inside: [abc] is a, b or c; [a-z] and [0-9] are ranges; [^abc] is any character except those. The brackets themselves stand for only one character, so [0-9]{3} is needed for three digits. File name globbing uses the same brackets with the same meaning.

Learn more

Regex flags (/gm)

Letters after a regex that change how it searches

In JavaScript, which this page's regex tester uses, letters after the closing slash change the search: g finds every match instead of only the first, m makes ^ and $ work on each line, and i ignores upper and lower case. Shell tools use options instead — grep -i for case, sed's g at the end of s/…/…/g for every match.

Learn more

Lazy matching

A repeat that takes as little text as it can (*? +?)

Repeats such as * and + are greedy: they grab as much as possible. A ? after them (*?, +?) makes them lazy, so they stop at the first point where the pattern can match. Lazy repeats exist only in Perl-style regex — grep -P, perl, Python — not in grep -E or sed. There, narrow what may repeat instead, as in "[^"]*".

Learn more

Lookahead (?=…) and \K

Checking what is around a match without taking it

A lookahead (?=…) checks that some text comes next, but does not include it in the match: [0-9]+(?=ms) finds the number in 250ms, not the ms. A lookbehind (?<=…) checks what comes before. \K says "forget what matched so far", so only the rest is printed. All three are Perl-style: use grep -P or Python, not grep -E.

Learn more

=~

bash's test: does this value match a regex?

Inside [[ ]], value =~ pattern is true when the value matches the regular expression (extended syntax). Text caught by ( ) goes into the BASH_REMATCH array. Do not put the pattern in quotes — quoted, it is compared as plain text. Keep a long pattern in a variable, as in re='^[0-9]+$', and write [[ $v =~ $re ]].

Learn more

Named group

A ( ) group you take out by name instead of number

A named group gives a pair of parentheses a name, so you can take its text out by that name instead of counting groups. Python writes it (?P<name>…) and reads it with m.group("name"); Perl-style regex also accepts (?<name>…). Names keep long patterns readable when groups are added or moved.

Learn more

Quantifier ({n,m})

Regex symbols that say how many times the thing before repeats

A quantifier says how often the item just before it repeats: * zero or more, + one or more, ? zero or one, {n} exactly n, {n,m} from n to m, {n,} n or more. It applies to one character or one ( ) group only, so ab{2} is abb, while (ab){2} is abab. In grep and sed without -E, write \{n,m\}.

Learn more

Shorthand classes (\d \w \s)

Short regex symbols for digit, word character and space

\d is one digit, \w one word character (letter, digit or _), \s one whitespace character; the capital forms \D \W \S mean the opposite. They are Perl-style: grep -P, perl and Python know them all, but in grep -E \d is just the letter d, so use [0-9] or [[:digit:]] there. Some greps accept \w and \s anyway, but not every tool does.

Learn more

Word boundary (\b)

The regex symbol for the edge of a word

\b matches the point where a word starts or ends, without taking up a character. \bart\b finds art but not party or start. grep -w does the same for the whole pattern. In Python write patterns as raw strings (r"\bart\b"), because in a plain string \b is a backspace character.

Learn more

SONUB dictionary

Shell command

134 terms

pwd

Print the full path of the folder you are in

pwd stands for print working directory. It prints the absolute path of your current folder, starting from the root /. Run it whenever you are unsure where you are before creating, moving or deleting files, because most terminal mistakes happen in the wrong folder.

ls

List the files and folders in a folder

ls shows what is inside the current folder, or inside any folder you name after it. Options change the view: -l shows details such as size, date and permissions, -a includes hidden files whose names start with a dot, and -h makes sizes easy to read. Options can be combined, as in ls -la.

cd

Move into another folder

cd means change directory. Give it a folder name to go inside, .. to go up one level, ~ or nothing at all to jump to your home folder, and - to return to where you just were. It prints nothing when it works, so check with pwd if you are unsure.

echo

Print text or a variable's value on the screen

echo prints whatever you give it, followed by a new line. It is the simplest way to check a variable, show a message from a script, or write text into a file with > and >>. Put the text in double quotes so spaces stay intact and variables are still filled in.

man

Open the manual of a command

man shows the built-in manual page of a command: what it does, every option and often examples. Scroll with the arrow keys or Space and press q to quit. Many commands also print a short summary with --help, help explains shell built-ins such as cd, and clear wipes a crowded screen.

read

Read a line the user types into a variable

read waits for the user to type a line and press Enter, then stores it in the variable you name. It is how a script asks a question. -p shows a prompt on the same line, and -r keeps backslashes as they are, which is the safe default.

mkdir

Make a new folder

mkdir creates one or more folders. With -p it also creates any missing parent folders along the path and does not complain if the folder already exists, which makes it safe to repeat in scripts.

touch

Create an empty file, or update a file's time

touch creates an empty file if the name does not exist yet. If the file already exists, it leaves the contents alone and only updates the modified time. It is a quick way to make placeholder files before writing to them.

cp

Copy files or folders

cp source target makes a copy and keeps the original. If the target is a folder, the copy goes inside it, and copying a whole folder needs -r. Watch out: cp silently overwrites an existing target, so add -i to be asked first.

mv

Move or rename files and folders

mv source target moves an item. If the target is a new name in the same folder, that simply renames it; if the target is a folder, the item moves inside it. Unlike cp, the original is gone afterwards. mv also overwrites without asking, so -i is a good habit.

rm

Delete files or folders permanently

rm removes files immediately; there is no Trash to restore them from. rm -r deletes a folder and everything inside it, and -f skips every question, which makes rm -rf the most dangerous everyday command. Look at the target with ls first, and use -i while you are learning.

cat

Print the whole contents of a file

cat prints the entire contents of one or more files. Its name comes from concatenate, because given several files it prints them one after another. For long files, head and tail are easier to read, and cat is also a common way to start a pipeline.

head

Show the first lines of a file

head prints the beginning of a file: the first 10 lines, unless -n says otherwise. It is handy for a quick look at a big file, or at the header row of a data file, without printing everything.

tail

Show the last lines of a file

tail prints the end of a file: the last 10 lines by default, or as many as -n says. With -f it keeps watching the file and prints new lines as they are added, which is how people follow a log while a program runs. Press Ctrl+C to stop.

printf

Print text in an exact format

printf prints text by following a format string. %s inserts text, %d a whole number and %.2f a number with two decimals, and \n starts a new line, because printf does not add one by itself. Use it instead of echo when output has to line up or look exactly right.

if

Run commands only when a condition is true

if runs a condition command and checks its exit code: 0 means true, so the commands after then run. elif adds more checks, else handles everything else, and fi closes the block. The condition is usually a test in double brackets, such as [[ $n -gt 5 ]] for numbers or [[ -f file ]] to check that a file exists.

for

Repeat commands for each item in a list

for name in list; do …; done runs the body once for every item and puts the current item in the variable. The list can be words, numbers from {1..5} or seq, file names from a pattern such as *.txt, or a command's output. Always keep the word in.

while

Repeat commands while a condition stays true

while condition; do …; done keeps looping as long as the condition succeeds, so something inside must eventually make it fail, or the loop runs forever (Ctrl+C stops it). until is the opposite and repeats until the condition becomes true. while read -r line is the standard way to go through a file line by line.

case

Choose one branch by matching a value against patterns

case value in pattern) commands ;; … esac compares one value with several patterns and runs the first branch that matches. Patterns can use wildcards like *.jpg, a | lists alternatives, and a final *) catches everything else. It reads more clearly than a long chain of if and elif.

seq

Print a sequence of numbers

seq prints numbers one per line: seq 5 gives 1 to 5, seq 2 5 starts at 2, and seq 0 10 50 counts in steps of 10. Its main job is to feed a for loop, as in for i in $(seq 1 20). The brace form {1..20} does the same without a separate command.

chmod

Change who may read, write or run a file

chmod changes a file's permissions. The everyday use is chmod +x script.sh, which makes a script executable so that ./script.sh can run it; without it you get Permission denied. Numbers such as 755 or 644 set read, write and execute for the owner, the group and everyone else at once.

source

Run a script inside the current shell

source file, or its short form . file, runs the commands of a file in your current shell instead of a new one. That is why variables, functions and PATH changes defined there stay available afterwards. It is how you reload your settings after editing ~/.bashrc or ~/.zshrc.

getopts

Read short options like -v or -o name in a script

getopts reads a script's short options one at a time inside a while loop. The option string lists the letters it accepts, and a colon after a letter means that option takes a value, which arrives in $OPTARG. It saves you from taking $1 and $2 apart by hand.

grep

Find the lines that contain a word or pattern

grep pattern file prints only the lines that match. -i ignores upper and lower case, -n shows line numbers, -r searches every file in a folder, -v shows the lines that do not match, and -c counts them. The pattern can be a regular expression, and grep prints nothing when there is no match.

sed

Find and replace text in a stream or a file

sed, the stream editor, edits text line by line. s/old/new/ replaces the first match on each line and s/old/new/g every match. -n with p prints only the chosen lines, and -i edits the file itself; -i.bak keeps a backup and also works on macOS. Try the command without -i first.

awk

Process text as columns: a small language for tables

awk splits each line into fields: $1 is the first column, $2 the second, $0 the whole line, NF the number of fields and NR the line number. A program has the shape pattern { action }, and BEGIN and END run before the first line and after the last, which makes totals and averages one-liners. Always wrap the program in single quotes.

sort

Sort lines alphabetically or by number

sort orders lines alphabetically by default. -n sorts numbers by value, so 10 comes after 9; -r reverses the order, -u drops duplicates, and -k picks the column to sort by. It is often combined with uniq and head in a pipeline.

uniq

Merge repeated lines that sit next to each other

uniq removes duplicate lines, but only when they are adjacent, so it is almost always used after sort. -c puts the number of repeats in front of each line, which turns sort | uniq -c into a quick counter.

wc

Count lines, words and characters

wc stands for word count. On its own it prints the lines, words and bytes of a file; -l counts only lines, -w only words and -c only bytes. Piped after another command, wc -l answers “how many?”, such as how many files or how many matching lines.

cut

Cut out columns or characters from each line

cut keeps only the parts of each line you ask for. -d sets the separator and -f picks field numbers, as in cut -d, -f2 for the second column of a CSV file; -c picks character positions instead. For more complex tables, awk is more flexible.

xargs

Turn input lines into arguments for another command

Some commands, such as rm or mkdir, do not read standard input; they need arguments. xargs reads items from the pipe and passes them to a command as arguments. -n 1 runs the command once per item, and -0 pairs safely with find -print0 when names contain spaces.

find

Find files and folders by name, type, size or date

find walks the starting folder and every folder below it, and prints the path of each matching file or folder on its own line. The skeleton is find where condition action. -name "*.txt" matches by name (keep the pattern in quotes), -type f picks files and -type d folders, -size and -mtime choose by size and last-modified date, and -exec command {} \; runs a command for every match. Unlike grep, which finds text inside files, find finds the files themselves.

rg

ripgrep: a fast search tool like grep

rg searches a whole folder by default and skips the files listed in .gitignore, so it is fast in big projects. The basic form rg pattern works like grep -r, but some options differ, so learn grep first. It is not in this page's practice terminal; install it on your own computer.

tee

Show output on screen and save it to a file at once

tee sits in the middle of a pipe: it passes everything on to the screen or the next command and also writes a copy into a file. By default it overwrites the file, and -a appends instead. It is handy for keeping a log while still watching the result.

cron

Run commands automatically on a schedule

cron runs commands at set times. crontab -e opens your schedule, where each line has five time fields (minute, hour, day of the month, month and day of the week) followed by the command, and * means every. cron starts in a different folder with a minimal PATH, so use absolute paths.

trap

Run cleanup code when a script exits or is interrupted

trap 'commands' SIGNAL runs the commands when the script receives that signal. trap … EXIT runs whenever the script ends, even after an error, so temporary files are always removed, and INT catches Ctrl+C.

set

Turn shell safety options on or off

set changes how the shell behaves. -e stops the script at the first failing command, -u treats unset variables as errors, and -o pipefail makes a pipeline fail when any stage fails, so set -euo pipefail at the top of a script turns all three on. -x prints every command before running it, which helps with debugging.

node

Run JavaScript outside the browser

node is the command of Node.js. node -v prints the installed version, node app.js runs a file and node -e runs a one-line program. With no arguments it opens an interactive prompt; type .exit to leave. If it says command not found, Node.js is not installed or not on your PATH.

npm

Install packages and run scripts for Node.js projects

npm comes with Node.js. npm install reads package.json and downloads the dependencies into node_modules, npm install name adds a new package, and npm run name runs a script listed in package.json. -g installs a tool globally so it works everywhere; if that fails with a permission error, fix it with nvm rather than sudo.

npx

Run a package's command once without installing it

npx runs a command that comes from an npm package. If the package is already in the project it uses that copy; otherwise it downloads it temporarily. It is ideal for one-off tools and project starters you do not want installed globally.

nvm

Install and switch between Node.js versions

nvm, the Node Version Manager, installs Node.js inside your home folder, so global npm installs need no sudo. nvm install --lts installs the long-term support version, nvm use switches the current terminal to a version, and nvm ls lists what is installed.

curl

Send a web request from the terminal

curl fetches a URL and prints the response. -o saves it to a file, -I shows only the headers, -L follows redirects, and -fsSL is the quiet combination used by install commands. curl … | bash runs a downloaded script immediately, so only do that with official, trusted addresses.

python3

Run Python programs from the shell

python3 file.py runs a Python file and python3 -c "code" runs one line. With python3 - <<'PY' a heredoc hands a multi-line program to Python through standard input. Typing python3 alone opens an interactive prompt, and exit() leaves it. The shell decides when to call Python, and Python does the math and data work.

Learn more

jq

Pick values out of JSON data

jq reads JSON and pulls out or reshapes parts of it with a small filter language: . is the whole input, .name a field, .[] every item of an array, and -r prints plain text without quotes. It pairs well with curl for reading API responses.

shellcheck

Find bugs in shell scripts before running them

shellcheck reads a script and warns about common mistakes: missing quotes, unused variables, wrong test syntax and much more. Every warning has a code such as SC2086 with a page that explains the fix. Running it on every script is one of the best safety habits.

firebase

Firebase's command-line tool for deploying projects

The Firebase CLI, installed with npm install -g firebase-tools, gives you the firebase command. firebase login connects your account, firebase init sets up a project folder, and firebase deploy publishes it. Check the installation with firebase --version.

mkfifo

Create a named pipe (FIFO)

mkfifo makes a special file that works like a pipe with a name. One command writes into it and another reads from it, first in, first out, without anything being stored on disk. The web server example uses it to pass data between nc and the response function.

nc

netcat: open raw network connections

nc reads and writes data over network connections. nc -l 8084 listens on port 8084 and waits for a visitor, which is how the web server example receives browser requests, and nc host port connects to another machine. Option details differ between versions.

sudo

Run one command as the administrator

sudo runs a single command with administrator (root) rights after asking for your password. It is needed for system-wide changes, but it also skips safety checks, so never add it just to silence an error. Global npm installs, for example, are better fixed with nvm than with sudo.

declare

Give a variable a type or a rule

declare makes a variable with extra properties: -i makes it an integer so += does arithmetic, -a an array, -A an associative array, -u and -l force upper or lower case, and -r (or the readonly command) makes it a constant that cannot change. Inside a function, declare and local both keep the variable inside that function.

bc

A calculator that handles decimals

Bash arithmetic $(( )) only works with whole numbers: $(( 10 / 3 )) is 3. bc is a calculator program that reads a sum from its input and prints the answer, and scale= sets how many decimal places to keep. Send the sum into it with echo and a pipe.

basename

Take just the file name out of a path (dirname takes the folder)

basename /usr/local/bin/run.sh prints run.sh, and basename run.sh .sh also drops the extension. Its partner dirname prints the folder part, /usr/local/bin. Inside bash, parameter expansion does the same without starting a command: ${path##*/} and ${path%/*}.

shopt

Turn the extra options of bash on and off

shopt -s turns a bash option on and shopt -u turns it off. globstar lets ** match folders at any depth, nullglob makes a pattern that matches nothing turn into nothing instead of staying as text, and nocaseglob ignores upper and lower case when matching file names. shopt on its own lists every option with on or off.

perl

Run Perl code, handy for regex on each line

perl runs programs in the Perl language and comes installed on macOS and most Linux systems. With perl -ne and perl -pe you can use Perl-style regex (\d \w \s, lazy .*?) on every line, even where grep -P is missing, as on macOS. -i edits the file in place.

findstr

Search text in Windows Command Prompt

findstr is the search command of Command Prompt, similar to grep. /R turns on a small regex: . * ^ $ and [ ] work, but + ? | and ( ) groups do not. /I ignores case and /N shows line numbers. For full regex on Windows, use PowerShell's Select-String.

Select-String

Find lines that match a pattern in PowerShell

Select-String is the grep of PowerShell. It reads files or text from a pipe and shows the lines that match a .NET regular expression, so \d \w \s work as they are. It ignores case by default; add -CaseSensitive to change that. -AllMatches finds every match on a line.

lsblk

List disks and their partitions

lsblk (list block devices) shows every disk and partition as a tree with its size, its type and, if it is mounted, the folder it is attached to. It changes nothing, so it is the safe first step before you partition, format or mount anything.

parted

Create and change the partitions of a disk

parted writes the partition table of a disk: mklabel makes a new, empty table (msdos or gpt) and mkpart adds a partition from one point to another, such as 1MiB to 100%. -s runs it without questions. It changes the disk at once, so check the device name with lsblk first.

mkfs

Format a partition with a file system

mkfs makes an empty file system on a partition, and the part after the dot picks the kind: mkfs.ext4 for Linux, mkfs.vfat for USB sticks that Windows and macOS can read too. Formatting erases everything that was on that partition.

mount

Attach a disk to a folder

mount attaches the file system of a partition to a folder (the mount point), so files saved in that folder go onto that disk. Without arguments it lists what is mounted. umount detaches it again; leave the folder first, or it answers target is busy.

df

Show the free space of each disk

df (disk free) lists the mounted file systems with their size, used and available space and where they are mounted. -h prints sizes people can read, such as 105M or 2.3G, and naming a folder shows only the disk that folder lives on.

apk

The package manager of Alpine Linux

apk installs, updates and removes programs on Alpine Linux, fetching each one and everything it needs from Alpine's package store. apk add installs, apk del removes and apk search finds. Other systems have their own: apt on Ubuntu and Debian, dnf on Fedora, brew on macOS.

pip

The package installer of Python

pip downloads Python libraries from PyPI and installs them. Recent Linux systems protect their own Python, so outside a virtual environment pip install fails with externally-managed-environment, or pip is not there at all; make a venv first and use the pip inside it.

gsub

awk function that replaces every match in a line

gsub(/pattern/, "new") replaces every part of the current line that matches the regular expression; a third argument limits it to one field, such as $3. Its sister sub replaces only the first match. After the change, print shows the new line — gsub itself prints nothing.

Learn more

caddy reload

Make a running Caddy read its changed settings without stopping

caddy reload tells a Caddy server that is already running to read its Caddyfile again and switch to the new settings. Visitors are not cut off, because Caddy keeps serving while it swaps the settings. If the new file has a mistake, Caddy refuses it and keeps the old settings, so run caddy validate first.

Learn more

kill

Send a signal to a running process, usually to stop it

kill sends a signal to a process picked by its number (PID). Without options it sends TERM, a polite request to finish; kill -9 sends KILL, which ends the process at once without letting it clean up, so use it only when TERM does not work. You find the number with jobs, ps or the output of a command started with &.

npm run

Run a script written in package.json

npm run <name> runs the command saved under that name in the "scripts" part of package.json, so a whole team starts, builds and tests a project the same way. npm run dev usually starts a development server and npm run build makes the finished files. npm run on its own lists the scripts the project has.

rsync

Copy files to another place or computer, sending only what changed

rsync copies a folder to another folder or, over SSH, to another computer. On the second run it compares both sides and sends only the files that changed, so updating a website is fast. A slash at the end of the source path matters: site/ copies what is inside the folder, site copies the folder itself.

Learn more

sleep

Wait a given number of seconds before going on

sleep does nothing for the time you give it and then ends, so the next command runs later. Scripts use it to wait between tries or to keep a connection open for a moment, as in (printf ...; sleep 1) | nc. The number is in seconds; GNU sleep on Linux also accepts units such as 2m.

tr

Swap or delete single characters in a stream of text

tr reads text from standard input and changes it one character at a time: it replaces characters from one set with the matching ones from another, or deletes them with -d. It works on characters, not on words, so for whole words use sed. tr -d '\r' is a common way to remove the carriage returns that Windows files and HTTP lines carry.

Learn more

docker compose up

Start every container described in compose.yaml

docker compose up reads compose.yaml in the current folder, downloads any missing images, creates the containers, networks and volumes, and starts them. With -d it runs them in the background and gives your prompt back. Running it again after you change compose.yaml or pull a new image recreates only the containers that changed.

Learn more

docker compose down

Stop and remove the containers of a compose project

docker compose down stops the containers that docker compose up started and removes them along with their network. Named volumes, where data such as a database or certificates is kept, stay unless you add -v. That is why down -v is dangerous on a server: it also deletes the saved data.

Learn more

docker run

Create a container from an image and start it

docker run makes a new container from an image and runs it, downloading the image first if it is missing. Options say how: -d runs it in the background, -p connects a port of your computer to a port in the container, -v attaches a folder or volume. When the options grow long, people write them once in compose.yaml and use docker compose up instead.

Learn more

/init

Have the AI tool read the project and draft its instruction file

/init asks the coding agent to read the project and write a first instruction file: CLAUDE.md in Claude Code, AGENTS.md in Codex. The file is read at the start of every session, so the project's purpose, build and test commands and your rules do not have to be repeated. Read the draft and fix it — it is a starting point, not a finished rulebook.

Learn more

/goal

The command (Codex, Claude Code) that sets a finish line and keeps the agent working until it is met

In Codex and Claude Code, /goal followed by a result sets a goal, and the agent keeps working, checking its progress, until the conditions are met. /goal on its own shows the current goal and /goal clear removes it (Codex also has pause and resume). In Claude Code a small model reads the conversation after each turn and judges whether the goal is met. The goal works only when it can be checked, such as "all tests pass and the README explains how to run the app".

Learn more

claude

The command that starts Claude Code in the terminal

Typing claude in a project folder starts Claude Code there, and it can read and edit the files of that folder. Options change how it runs: -p answers once without the chat screen, -c continues the last conversation. If the terminal says "claude: command not found", it is not installed yet or its folder is not in PATH.

Learn more

agy

The command that starts Google's Antigravity CLI in the terminal

agy starts Antigravity CLI, Google's coding agent for the terminal, in the current folder. You install it with the script on the official page and sign in with a Google account the first time. Like claude and codex, it reads the project and can edit files and run commands, so giving the same task to two agents and comparing their plans catches mistakes.

Learn more

gh

GitHub's own command-line tool

gh, the GitHub CLI, does GitHub work from the terminal: sign in, open and review pull requests, create issues and manage project boards. git moves commits between computers, while gh handles what lives only on the GitHub website. If you let gh auth login set up Git as well, git push uses the same sign-in, so you do not paste tokens into the terminal.

Learn more

flutter build

Make the release file of a Flutter app for a store

flutter build turns a Flutter project into a finished, optimised file for one platform. flutter build appbundle makes the .aab that Google Play takes, and flutter build ipa makes the iOS archive for the App Store, which needs a Mac with Xcode. Store uploads must be signed, so the signing settings have to be in place before the release build.

Learn more

rm -rf

Delete a folder and everything in it, without asking

rm -r removes a folder with everything inside it, and adding -f stops it from asking or complaining. There is no recycle bin, so one wrong path — an extra space, or an empty variable in rm -rf "$DIR"/* — can wipe a whole project or more. Read such a command, run ls on the same path first, and never approve one from an AI agent you do not understand.

Learn more

skills CLI

The command-line tool that installs, updates and removes agent skills

The skills CLI, run with npx skills, copies a skill from a source such as sonub.com or a GitHub repository into .agents/skills and makes a link for Claude Code in .claude/skills. Skills installed this way can be listed, updated and removed with the same tool; a folder someone copied by hand shows as local and is not updated. -g installs for every project instead of the current one.

Learn more

skills-ref

The reference tool that checks a skill's SKILL.md against the format rules

skills-ref is the reference tool in the agentskills repository, the home of the open Agent Skills format. skills-ref validate reads a skill folder and reports what breaks the rules of the SKILL.md header, such as a missing name or description. It is made for demonstration, so you clone the repository and install it with pip install -e . before using it.

Learn more

winget

The package manager that installs programs on Windows

winget (WinGet) is the Windows Package Manager: it installs, upgrades and removes programs from the command line in PowerShell or Command Prompt. It is to Windows what brew is to macOS and apt is to Ubuntu. Some tools installed with winget, such as Claude Code, do not update themselves, so you run winget upgrade from time to time.

brew

Homebrew, the package manager most people use on macOS

brew is the command of Homebrew, which installs command-line tools and apps on macOS (and also on Linux) usually without sudo. brew install adds a program, brew upgrade updates what you installed and brew search finds names. Tools installed with brew, such as Claude Code, are updated by brew upgrade rather than by themselves.

pnpm

A fast Node.js package manager that saves disk space

pnpm does the same job as npm — install the packages in package.json and run its scripts — but keeps one copy of each package version on the disk and links it into every project. That makes installs faster and saves space when you have many projects. Its lock file is pnpm-lock.yaml; use one package manager per project so the lock files do not fight.

ln

Make a link: a second name that points to a file

ln -s makes a symbolic link, a small file that points to another file or folder, so the same content can be reached from two places without a copy. Write the real target first and the new link name second. Without -s, ln makes a hard link, which only works inside one file system; Windows handles symbolic links differently, which is why projects shared with Windows users often avoid them.

nohup

Keep a command running after the terminal is closed

Normally, closing a terminal sends its commands a hang-up signal and they stop. nohup makes a command ignore that signal and writes its output to nohup.out unless you redirect it; add & to run it in the background. It does not help in a browser terminal, which disappears with the tab, and for long work on a server tmux is easier to come back to.

micro

An easy code editor that runs in the terminal

micro is a code editor that runs right in the terminal. It colors code such as Python, shows line numbers, and carries the indentation to the next line when you press Enter. As in most programs, Ctrl+S saves, Ctrl+Q closes, and Ctrl+F searches. SONUB's practice Linux has it preinstalled.

nano

An easy text editor that runs inside the terminal

nano opens a file for editing right in the terminal, and the shortcuts are listed at the bottom of the screen, where ^ means Ctrl. Ctrl+O then Enter saves, Ctrl+X closes, and Ctrl+W searches. Git may open nano (or Vim) when you commit without -m, so it helps to know how to leave it.

vim

A powerful terminal text editor used only with the keyboard

Vim edits files inside the terminal and is on almost every server. It has modes: it starts in normal mode, where keys are commands; i switches to insert mode for typing, and Esc goes back. To leave, press Esc and type :wq to save and quit, :q! to quit without saving, or ZZ to save and quit.

clear

Wipe the terminal screen clean

clear empties the terminal window and puts the prompt back at the top, so the next output is easy to read. Ctrl+L does the same. It only tidies the screen: your files, variables and command history stay as they were.

exit

End the shell, or end a script with an exit code

Typed at the prompt, exit closes the shell session — the terminal tab, or the connection when you are logged in to a server with ssh. In a script, exit 0 ends it as a success and exit 1 (or another number) as a failure, so whoever ran the script can check $?. Inside AI tools such as Claude Code you leave with /exit instead.

sh

The basic shell, used to run shell scripts

sh is the standard POSIX shell that every Unix-like system has; on Alpine it is BusyBox ash, on Ubuntu it is dash. sh script.sh runs a script with it, and install pages often pipe a downloaded script into it (curl … | sh). It lacks bash features such as arrays and [[ ]], so a script that uses them must run with bash.

alias

Give a command a short name of your own

alias makes a short name that the shell replaces with a longer command, such as ll for ls -la. alias on its own lists the current ones and unalias removes one. An alias lasts only for the current session; to keep it, write the line in ~/.bashrc or ~/.zshrc.

apt

The package manager of Ubuntu and Debian

apt installs, updates and removes programs on Ubuntu, Debian and the systems built on them, such as the Ubuntu you get in WSL. It changes the whole system, so it runs with sudo. Run sudo apt update first to refresh the list of available versions, then install.

blkid

Show the file system type and ID of each partition

blkid prints, for each disk partition, its UUID (a unique ID), its file system TYPE such as ext4 or vfat, and its LABEL if it has one. lsblk shows how disks are laid out; blkid tells you what is inside each part. The UUID is what /etc/fstab uses to find a disk even when its name such as sda1 changes.

break

Leave a loop early

break stops the for, while or until loop it is in, and the script goes on after done. It is the usual way out of an endless while true loop once the thing you waited for has happened. break 2 leaves two nested loops at once.

continue

Skip the rest of this round of a loop and start the next one

continue jumps from where it is straight to the next round of the loop, skipping the commands below it. It keeps a loop simple when some items should be ignored, such as empty files or names that did not match. Unlike break, the loop itself goes on.

chown

Change who owns a file or folder

chown sets the owner (and, after a colon, the group) of files and folders. Only the administrator can give a file to someone else, so it usually runs with sudo. It is common after mounting a new disk, whose folders belong to root at first; -R changes everything inside a folder too.

comm

Compare two sorted files: lines only in one, only in the other, in both

comm reads two sorted files and prints three columns: lines only in the first, lines only in the second, and lines in both. Options hide columns, so comm -12 shows only the shared lines. Both inputs must be sorted first; process substitution lets you sort them on the fly.

command -v

Check whether a command exists, the same way on every system

command -v name prints where the command is (or that it is a built-in) and succeeds, or prints nothing and fails when there is no such command. Because it works the same in every POSIX shell, scripts use it to check for a tool before using it. Throw the output away when only the answer matters.

date

Print the current date and time, in any format you choose

date prints today's date and time. A format starting with + chooses the parts, such as +%Y-%m-%d for 2026-10-21, which is handy in file names for backups and logs. -u shows the time in UTC instead of your local time zone.

du

Show how much disk space folders and files use

du (disk usage) adds up the size of files inside a folder. -h prints sizes as K, M and G, and -s gives one total instead of a line for every sub-folder. To find what fills your disk, list one level deep and sort by size; df shows the free space of the whole disk instead.

env

Show environment variables, or run a program with changed ones

env on its own prints every environment variable. env NAME=value command runs one command with an extra variable without changing your shell. In #!/usr/bin/env bash, env finds bash wherever it is installed through PATH, which is why many scripts start that way.

export

Pass a variable on to the programs this shell starts

A normal shell variable is seen only by the shell itself. export marks it as an environment variable, so every program started from this shell — a script, node, python3 — receives it too. It lasts until the terminal closes; to keep it, put the export line in ~/.bashrc or ~/.zshrc.

fdisk

Show or change the partition table of a disk

fdisk -l lists the disks and their partitions with sizes and types. Run on one disk, fdisk opens an interactive menu to create or delete partitions; nothing is written until you press w, and q leaves without changes. Changing the partitions of a disk that holds data can make it unreadable, so practise on an empty disk.

fg · bg

Bring a job to the front, or keep it running in the background

fg brings a background or paused job back to the front of the terminal, where it can read your keyboard. Ctrl+Z pauses the job that is running in front, and bg lets that paused job continue in the background. With several jobs, add the number that jobs shows, such as fg %2.

help

Show help for the shell's own built-in commands

help is a bash built-in that explains bash's own commands, such as cd, for and read. It does not know separate programs like ls or grep: for those use man or the --help option. help on its own lists every built-in.

info

Read the long, detailed manual of a GNU program

info opens the detailed documents that many GNU programs ship, often longer than the man page and split into linked sections. Space moves on, n and p go to the next and previous section, and q quits. Small systems such as Alpine may not have it installed; then man and --help are the way.

jobs

List the background and paused jobs of this terminal

jobs shows the jobs started from the current shell with & or paused with Ctrl+Z, each with a number like [1] and its state. You use that number with fg, bg, kill and wait, as in fg %1. It only knows jobs of this shell, not programs started elsewhere — ps shows those.

join

Merge the lines of two files that share the same key

join reads two files that are sorted on a common column, such as an ID, and prints one line for each key found in both, with the other columns of both files side by side. It works like a small database join on text files. Sort both files on the key first; -t sets the separator, as in join -t, for CSV.

less

Read a long file one screen at a time

less shows a file one screen at a time instead of pouring it all out like cat. Space pages down, b goes back, /word searches and n jumps to the next match, and q quits. It opens even huge log files quickly because it does not load the whole file first.

local

Make a variable that exists only inside a function

In bash, a variable set inside a function is global by default and can overwrite a variable of the same name elsewhere in the script — a bug that is hard to find. local name=value makes the variable belong to the function only, and it disappears when the function returns. Make local your default inside functions.

make

Run the build steps written in a Makefile

make reads a file named Makefile, where each target lists the files it needs and the commands that build it. It reruns only the steps whose input files changed since last time, which saves time in big projects. Many projects also use it for short names like make test or make install.

mktemp

Create a temporary file with a name nothing else is using

mktemp creates an empty file with a random name, usually in /tmp, and prints that name so a script can store it in a variable. Because the name is unique, two copies of the same script running at once never overwrite each other's temporary files. Pair it with trap so the file is removed when the script ends.

openssl

A toolbox for encryption, certificates and secure random numbers

openssl is a command-line toolkit for cryptography: it makes random secrets, creates and reads certificates, encrypts files and tests HTTPS connections. For a password or API secret use openssl rand, not $RANDOM, which is predictable and fine only for games. openssl s_client shows the certificate a site sends.

paste

Put the lines of files side by side

paste joins line 1 of each file into one line, then line 2, and so on, with a tab between them. -d chooses another separator, and -s puts all lines of one file on a single line instead. It is the opposite of cut, which takes columns apart.

ping

Check whether another computer answers over the network

ping sends small test packets to a computer and prints how long each answer took, so you see whether it is reachable and how slow the line is. It runs until you press Ctrl+C unless you give -c and a count. Some servers and networks block ping, and in the practice terminal the emulator answers by itself, so test a real connection with curl instead.

py

The command that runs Python on Windows

On Windows, the Python installer adds py, the Python launcher, which picks an installed Python and runs your program with it. On macOS and Linux the same job is done with python3. py -0 lists the Python versions it found, and py -3.12 chooses one.

return

End a function and report success or failure

return leaves a shell function and sets its exit status: return 0 means success and any other number up to 255 means failure, which if and && can check. It does not hand back text, unlike return in Python. To get text out of a function, print it with echo and capture it with result=$(myfunc).

rmdir

Delete a folder only if it is empty

rmdir removes a folder only when nothing is inside it, and refuses otherwise. That refusal is its safety: when a folder should already be empty, rmdir cannot take files with it by mistake the way rm -r can. -p also removes the empty parent folders in the path.

ruby

Run a program written in the Ruby language

ruby runs Ruby programs: ruby file.rb runs a file and ruby -e runs one line typed on the command line, like python3 -c, node -e and perl -e. Ruby is known for readable code and the Rails web framework. It may need to be installed first, for example with brew or apt.

shift

Move the arguments of a script one place to the left

shift drops the first argument, so $2 becomes $1, $3 becomes $2, and $# goes down by one. A while loop with shift handles arguments one at a time. After getopts has read the options, shift $((OPTIND - 1)) removes them so that $1 is the first real argument.

test · [ ]

The older way to check a condition, with single brackets

[ ... ] is another name for the test command: it checks a condition and succeeds or fails, so if can use it. It is part of every POSIX shell, but it is strict — spaces are needed inside the brackets and variables must be quoted, because an empty variable leaves a hole in the command. In bash, [[ ]] is the newer, safer form.

trash-cli

Commands that move files to the trash instead of deleting them

rm deletes for good, but trash-cli gives the terminal a recycle bin: trash-put moves files to the same trash the desktop uses, trash-list shows what is there and trash-restore brings a file back. It is a separate package, installed with apt or pip, not a built-in command. Use it when you want a way back from a mistake.

tree

Draw a folder and everything under it as a tree

tree prints the folders and files under a folder with lines that show what sits inside what, which is easier to read than many ls calls. -L limits how deep it goes and -a also shows hidden files. It is often not installed by default; in the practice terminal add it with sudo apk add tree.

true · false

Commands that always succeed or always fail

true does nothing and ends with exit code 0 (success); false does nothing and ends with 1 (failure). while true makes a loop that runs until break or Ctrl+C, and the two are handy for testing && and ||. In the shell, success and failure are exit codes, not the words true and false.

type

Tell whether a name is a built-in, an alias, a function or a program

type name says what the shell will actually run for that name: a shell built-in like cd, an alias, a function you defined, or a program file and its path. That matters when something behaves differently than you expect. type -a lists every match, in the order the shell tries them.

until

Repeat commands until a condition becomes true

until is the mirror of while: it repeats its body as long as the condition is false and stops when it becomes true. It reads naturally for waiting, as in "until the server answers, wait a second". Make sure something inside changes, or the loop never ends.

wait

Wait until background jobs have finished

wait pauses the script until its background jobs (started with &) are done, so you can start several slow tasks at once and continue only when all have finished. wait with a process ID waits for that one job and returns its exit code. Without wait, a script may end before its background jobs do.

which

Find where a command's program file is

which name searches the folders in PATH and prints the full path of the program that would run, such as /usr/bin/python3. It helps when a tool is installed but "command not found" appears, or when two versions exist; which -a shows all of them. It does not see shell built-ins, aliases or functions — type does.

/resume

Pick up a past conversation where you left off

`/resume` in Claude Code opens a list of your past conversations, so you can choose one and continue it with its whole history. From the terminal, `claude --resume` opens the same list and `claude --continue` reopens the most recent conversation in the current folder. Codex works the same way with `codex resume` and `codex resume --last`.

Learn more

claude doctor

Check Claude Code's installation and settings for problems

`claude doctor` checks whether Claude Code is installed correctly and whether your settings files have errors, and prints the result in the terminal without starting a conversation. Inside a conversation, `/doctor` runs a similar checkup and can also fix some problems. Try it first when Claude Code behaves strangely after an install or update.

Learn more

claude setup-token

Make a long-lived Claude login token for automated runs

`claude setup-token` creates a login token that lasts one year, so Claude Code can run where nobody can sign in through a browser, such as GitHub Actions or a script. After one approval in the browser it prints the token without saving it; keep it as a secret in the `CLAUDE_CODE_OAUTH_TOKEN` environment variable. It uses your Claude subscription (Pro, Max, Team or Enterprise), so treat it like a password.

Learn more

No term matches your search.

Glossary

Pick a word you don't know. You'll see a simple explanation and related terms.

No matching term yet.

Pick a term to see its explanation.

Reading window