Free & open · no paywall, ever

IntegrAuth Academy

Identity, security and practical AI — free, from zero. Byte-sized lessons, real diagrams, hands-on labs, zero fluff. Two programs, each with its own exam and certificate.

20 tracks 241 lessons 242 hands-on labs 230+ diagrams 100% free

English is hard? Your browser can translate this page into Tamil, Telugu, Kannada, Malayalam or Hindi. Tech words stay in English so you learn the real names.

How?
  • Chrome on phone: ⋮ menu → Translate
  • Chrome on computer: right-click → Translate to …
  • Edge: the translate icon in the address bar
Practical AI Track 0 · AI from Zero
0/75 lessons read
AI FROM ZERO · LESSON 9

Tech basics: terminal, JSON and keys

Priya gets setup steps for an AI coding tool. They say: "Open a terminal, cd into the repo, put your API key in .env, run npm install, commit first." She knows the words, but not what they mean. Your goal: know what each step does.

🧪 Interactive lab — enable JavaScript to play with this one.

~ (priya)Documents/notes-app/.envsecrets (hidden on macOS/Linux).git/git's history (hidden).gitignorewhat git must skippackage.jsonsrc/index.jsOne file, three full (absolute) pathsmacOS/Users/priya/notes-app/package.jsonLinux/home/priya/notes-app/package.jsonWindowsC:\Users\priya\notes-app\package.jsonRelative, from inside notes-apppackage.json · src/index.js(Windows writes src\index.js)Shortcuts.. = the folder above · ~ = your home folder
Every file has an address.
Key points
  • A file path is a file's address. .. means the folder above.
  • The terminal does exactly what you type. Never run a command you don't understand.
  • JSON is strict. Lists in it count from 0.
  • Keep API keys out of code and Git.
  • Commit your work before an AI changes your files.

Type instead of click

A terminal can look scary. It is only typing instead of clicking, and the practice terminal here is pretend. The terminal is a window where you type commands. The program that reads them is the shell. On a Mac or Linux:

  • pwd shows the folder you are in.
  • ls -a lists the files here, even hidden ones.
  • cd notes-app goes into a folder. cd .. goes up one.
  • cat notes.md shows what a text file says.

Keep your key secret

An API is a door one program uses to ask another for something. An API key is the secret code for that door. It tells the AI company which account pays. Keep it in an environment variable, a named value your computer gives each program. Or put it in a .env file listed in .gitignore, so git never saves it. Did a key leak? Turn it off on the company's website and make a new one. This is called revoking the key.

Git is your undo button

Git saves snapshots of a project. Each snapshot is a commit. git diff shows every line the AI changed. Lines with - were removed, and + lines were added. git restore notes.md throws away that file's unstaged changes. Those are edits you have not yet picked with git add.

AI tools keep settings in JSON. One wrong comma breaks it. Fix some yourself.

🧪 Interactive lab — enable JavaScript to play with this one.

Go deeper: file names and paths

The end of a file name is its extension. .txt and .md are plain text, .csv is a table and .py is code. Renaming notes.txt to notes.pdf does not convert it. It only changes the label.

On a Mac or Linux, a name that starts with a dot, like .env, is a hidden file. An absolute path starts at the top, like C:\Users\priya\notes-app on Windows. A relative path starts from the folder you are in. ~ means your home folder.

Go deeper: terminals on each computer

On a Mac, open the Terminal app. Its shell is zsh. On Windows 11, open Terminal. It starts PowerShell. In PowerShell, use ls -Force to see hidden files.

Tab finishes a file name. ↑ brings back your last command. Ctrl+C stops a running command.

AI coding tools work here, because commands are text in and text out. When one asks "may I run this?", you must understand the command. rm deletes files, and they skip the Trash. sudo runs a command with admin power. curl … | sh downloads a script and runs it at once.

Go deeper: installing tools

Many AI tools need a runtime. That is the program that runs code in one language. Node.js runs JavaScript, and Python runs Python. To check for one, ask for its version, like node --version. "command not found" means it is not installed, or the shell can't find it.

A package manager installs software by name, like winget install Git.Git on Windows. npm installs the code a project needs. It reads package.json. Installing a package runs code written by strangers. So copy names from official docs and check the spelling. Attackers publish look-alike names.

Go deeper: reading JSON

Curly braces hold an object: a set of "key": value pairs. Square brackets hold an array: a list in order. A value can be text in double quotes, or a number. It can be true, false or null, which means nothing.

{"name": "notes-app", "scripts": {"test": "node --test"}, "keywords": ["notes", "demo"], "private": true}

Read it like a path. The test command is at scripts → test. The first keyword is keywords[0]. true has no quotes, so it is a yes-or-no value, not text. JSON breaks with single quotes, a comma after the last item, or a comment.

Go deeper: keys and git

To set a key for this terminal only, type export MODEL_API_KEY="…" on a Mac or Linux. It is gone when you close the window. A .env file is plain text with NAME=value lines. Your shell does not read it. The app's code, Node's --env-file option or a tool must load it. Deleting a leaked key from a file is not enough, because git keeps old versions. A coding agent on your computer can read your keys too.

mainbranch: try-ideaAdd notesFix typoUpdate dateTry new layoutTidy layoutMergediff = what changedEach circle is acommit: a snapshotyou can return to
Snapshots, not one save. Each commit is a checkpoint. A branch lets you try ideas on the side.

The folder and its history is a repository. A diff shows what changed between 2 snapshots. A branch is a separate line of work. git status lists what changed. git add notes.md picks a file, and git commit -m "Update date" saves the snapshot.