Setup Instructions

Select your exam app below for a step-by-step guide.

SEB, SchoolYear, and custom SEB builds

Safe Exam Browser & Custom Forks

This covers the official SEB app as well as school-specific forks like SchoolYear, custom SEB builds, and any app built on the SEB codebase.

The DynamicGPT app must be running
The DynamicGPT app must be open and logged in before you arm. You'll arm and disarm directly from the app using Quick Arm.
Requirements
  • • macOS 14.3 or later
  • • Your Mac admin password
  • • An Apple ID (free is fine)
  • • DynamicGPT app open & logged in
Time estimate
  • 5 min — Apple Developer cert (if Xcode already installed)
  • 30–60 min — Xcode install + first run (if not)
  • 10 min — SIP / AMFI disable + reboots
  • 5 min — DynamicGPT install

Total: ~20 min on a warm machine, up to ~90 min if Xcode needs downloading.

One-Time Setup

Same SIP/AMFI setup as the SIP / Injection Method:

Step 0: Get an Apple Development Certificate

Required
Do this before installing DynamicGPT
DynamicGPT's installer needs to sign the app with your Apple Development certificate. Without it, macOS will refuse to run the app. This only takes 5–10 minutes and you only need to do it once.
1

Update macOS to the latest version

Go to System Settings → General → Software Update and install any available updates. Restart your Mac if prompted.

Why? Xcode requires a recent macOS version. Updating now prevents compatibility issues.
2

Install Xcode

Open the App Store, search for Xcode, and click Get. Enter your Apple ID password and wait for it to download and install (it's large — may take a while).

Can't find Xcode? If Xcode isn't available for your macOS version, download it directly from xcodereleases.com — pick the latest version compatible with your macOS.
3

Open Xcode and accept the license

Launch Xcode. It will ask you to agree to the license agreement and may install additional components — click Agree and Install for everything it asks. Wait until you see the Xcode welcome screen.

4

Create a new project

On the welcome screen, click Create New Project. At the top of the template picker, select the macOS tab, then choose App and click Next.

  • Product Name: Anything — e.g. TestApp
  • Team: If it says "None", click Add an Account, sign in with your Apple ID, then select your Personal Team.
  • Organization Identifier: Anything — e.g. com.test
  • Everything else: Leave as default.

Click Next, choose any save location (Desktop is fine), and click Create.

5

Set up signing

In the left sidebar, click the top-level project name (the blue icon). Then click Signing & Capabilities in the center panel. Make sure your Personal Team is selected under Team.

6

Build and run

Click the ▶ Play button in the top-left toolbar. Xcode will compile the app and a "Hello, world!" window will appear. Once you see this window, you're done.

Certificate created!
By building this project, macOS generated your Apple Development certificate. DynamicGPT's installer will now be able to sign the app for you.
7

Close Xcode (optional: delete it)

Close the Hello World window and quit Xcode. You can delete Xcode from your Applications folder if you want to free up space — the certificate stays on your Mac permanently.

Which Mac Do I Have?

Required
1

Open About This Mac

Click the Apple logo in the top-left corner of your screen, then click About This Mac.

2

Identify Your Chip

Apple Silicon

If you see "Chip: Apple M1/M2/M3/M4" — you have an Apple Silicon Mac. This requires two reboots for setup.

Intel

If you see "Processor: Intel Core i5/i7/i9" — you have an Intel Mac. Everything can be done in one reboot.

Pick your Mac — commands swap based on this

Not sure? Apple menu → About This Mac. "Chip: Apple M…" = Silicon. "Processor: Intel…" = Intel.

Disable SIP (System Integrity Protection)

Intel — 1 reboot
Intel flow — one reboot
On Intel Macs you can run both csrutil disable and the AMFI command from Recovery in the same session. After that one reboot you're done.
1

Shut down completely

Apple menu → Shut Down. Wait until the screen is fully black with no lights — don't just close the lid.

2

Boot into Recovery Mode (Intel)

Press the power button to turn the Mac on, and immediately hold ⌘ + R until you see the Apple logo and a progress bar. Release. Choose your user and enter your password if prompted.

3

Open Terminal in Recovery

In the menu bar at the top, click Utilities → Terminal.

4

Disable SIP

csrutil disable

You should see: "Successfully disabled System Integrity Protection."

5

Disable AMFI in the same Recovery session

Still in the Recovery Terminal, run the AMFI boot-arg command. On Intel, nvram works inside Recovery — that's the whole reason Intel only needs one reboot.

nvram boot-args="amfi_get_out_of_my_way=1"
6

Reboot back to macOS

reboot

Wait for your Mac to restart and log in normally. Then skip to Verify Everything Worked — both SIP and AMFI are already disabled.

Disable AMFI

Intel — already done
You're done with this step
Intel Macs disabled AMFI inside Recovery in the previous section. Continue to Verify Everything Worked below — no extra commands needed.

Verify Everything Worked

Required

Open Terminal on your normal desktop and run both of these commands to confirm. Same checks for Apple Silicon and Intel.

Check SIP
csrutil status

Should say: "System Integrity Protection status: disabled."

Check AMFI
nvram -p | grep amfi

Should print: boot-args amfi_get_out_of_my_way=1

Both passed?
Your Mac is ready. Continue to Set Up DynamicGPT below.
Either check missing or wrong?
Don't continue. Re-run the disable steps for that piece. SIP missing = redo Recovery boot + csrutil disable. AMFI missing on Apple Silicon = sudo nvram boot-args="amfi_get_out_of_my_way=1" + reboot. AMFI missing on Intel = you skipped the Recovery nvram command — boot back into Recovery and run it.

Set Up DynamicGPT

One Time
Folder name matters!
Your folder must be named exactly diag. If it has a different name, rename it before continuing.
Folder must be on your Desktop
The folder needs to be on your Desktop — not in Downloads, not in another folder.
Heads-up: the app has a different name
DynamicGPT installs under a neutral name so it blends in with macOS. The folder is diag, and after install the app appears as DiagnosticReporter in Applications → Utilities. Both are DynamicGPT.
1

Move the diag folder to your Desktop

Unzip the download, then drag the diag folder onto your Desktop.

2

Unquarantine the folder

Open copy.txt inside the folder, select all (⌘ + A), copy (⌘ + C). Open Terminal, type cd , drag the diag folder into Terminal, press Return. Then paste (⌘ + V) and press Return.

xattr -cr . && chmod +x Install.command Uninstall.command
3

Double-click Install.command

Open the diag folder and double-click Install.command.

If macOS blocks it
Right-click Install.commandOpenOpen again.
4

Enter your Mac password when asked

Type your normal Mac login password and press Return. Characters won't appear — that's normal.

5

Wait for "INSTALLATION COMPLETE"

Wait for the INSTALLATION COMPLETE banner. DynamicGPT now lives in Applications → Utilities as DiagnosticReporter.

Before Each Exam

⚠️ READ THIS FIRST: 1–2 minute freeze is normal — DO NOT force-quit
After you arm and launch SEB (or your school's fork), it will show "Not Responding" for 1–2 full minutes. The injection is loading. Do NOT force-quit. Do NOT click repeatedly. Just wait. The app comes back to life on its own and DynamicGPT appears inside it.
1

Open the DynamicGPT app, log in & reboot

Open the DynamicGPT app and log in. Then Apple menu → Restart. After rebooting, reopen the app.

2

Arm via Quick Arm

In the DynamicGPT app, open Quick Arm and select Safe Exam Browser. For SEB forks (SchoolYear, custom builds, etc.), toggle the SEB Fork option. Then tap Arm.

No Terminal needed!
Quick Arm handles everything — no scripts to run. It also checks that SIP, AMFI, and all prerequisites are correctly configured before arming.
3

Launch your exam app & wait

Same as the SIP method — expect 1–2 minutes of "Not Responding". Don't panic, don't force quit.

How to Identify SEB Forks

If your school uses a custom-branded browser based on SEB (e.g. SchoolYear, or a name your institution invented), toggle the SEB Fork option in Quick Arm before arming. If you're unsure, try without the toggle first; if arming reports a mismatch, enable it and try again.

After Each Exam

ALWAYS disarm and restart your Mac
This is critical. You must disarm and reboot after every exam.

Open Quick Arm in the app and tap Disarm, or force reboot (hold power button 5–10 seconds). Both work — force reboot auto-disarms.

Fix Problems, Reset, or Uninstall

Your diag folder on your Desktop has two scripts you can double-click any time you need them:

Install.command — Fix or Reset

Double-click this when something goes wrong. It cleans up leftover state and reinstalls DynamicGPT fresh. Safe to run multiple times.

When to run it:
  • App is stuck, frozen, or won't open
  • You want to restart fresh for safety before an exam
  • You updated to a new version
  • Anything acting weird — when in doubt, run it

How: Quit the app (⌘ + Q), open ~/Desktop/diag, double-click Install.command, enter your Mac password when asked. Done.

Uninstall.command — Remove DynamicGPT

Double-click this when you want DynamicGPT gone from your Mac. It moves the app out of your Applications folder, clears saved logins, and puts everything back in the diag folder so you could reinstall later if you change your mind.

  1. Quit the app (⌘ + Q).
  2. Open ~/Desktop/diag.
  3. Double-click Uninstall.command.
  4. Enter your Mac password when asked.
  5. For full removal: drag the entire diag folder to the Trash and empty it.

If you skip step 5, you can double-click Install.command later to put DynamicGPT back without re-downloading anything.

Script won't open?
If macOS says "Install.command can't be opened because it is from an unidentified developer" — right-click the file and choose Open, then click Open again. Or go to System Settings → Privacy & Security, scroll down, and click "Open Anyway".

How to Update DynamicGPT

1

Uninstall the current version

Quit the app (⌘ + Q), then open ~/Desktop/diag and double-click Uninstall.command. Enter your Mac password when asked.

2

Delete the old folder

Drag the diag folder to Trash, then empty Trash (right-click the Trash icon → Empty Trash).

3

Download the latest version

Go to your dashboard and download the newest zip. Unzip it — you'll get a fresh diag folder. Drag it onto your Desktop.

4

Run Install.command

Double-click Install.command inside the folder, enter your Mac password, wait for "INSTALLATION COMPLETE". Then open the app and log in again.

Help! My Mac Crashed / Froze

Don't panic — this is easy to fix
If your Mac is frozen, unresponsive, or has a black screen, just do a force restart. This is completely safe and will not harm your Mac or data.
1

Force restart

Hold the power button until the screen goes completely black (about 5–10 seconds). Then let go.

2

Wait 10 seconds

Give it a moment. Don't press anything yet.

3

Turn it back on

Press the power button once normally. Your Mac will boot up and you should be good to go.

Re-enable Security After Exams

Keep your Mac protected
With SIP/AMFI disabled, your Mac is more vulnerable. Re-enable these protections when you don't need DynamicGPT for a while.
1

Re-enable everything in one Recovery session (Intel)

Shut down → power on while holding ⌘ + R → release at the Apple logo → Utilities → Terminal. Then run both:

csrutil enable
nvram boot-args=""
reboot
2

Verify protection is back on

csrutil status

Should say: "System Integrity Protection status: enabled."

nvram -p | grep amfi

Should return nothing (no boot-args line).

Quick Reference

Arm
Quick Arm → Safe Exam Browser → Arm
Disarm
Quick Arm → Disarm (or force reboot)
Folder
~/Desktop/diag
  • Arm and disarm through the app — no Terminal commands needed
  • Toggle SEB Fork in Quick Arm for non-official SEB builds
  • Quick Arm checks SIP/AMFI/prerequisites before arming
  • ALWAYS disarm and restart your Mac after exam
  • Force reboot after exam is expected and safe

Still stuck? Contact support@dynamicgpt.app or join our Discord.