DA User Guide DA v2026.10.13 Download DA PDF version

DA User Guide

DA (short for Digital Archive) puts your photos and scanned documents in order. You copy them into one folder, and DA:

DA never deletes anything. It asks before it moves anything, and it keeps a record of every change, so every step can be checked and most can be undone.

DA runs on Windows 10 and 11.

Contents

Words you'll see

Word What it means
Archive A folder DA looks after, for example D:\jane-archive-199x. You can have as many as you like, for example one for each person and each decade.
Intake The folder inside an archive where you put new photos and documents: intake\. DA takes them from here.
Organized Where DA files them: photos\organized\ and documents\organized\, one folder per year and month.
Duplicate An exact copy of a photo, byte for byte. DA keeps one and moves the others to _duplicates-holding\.
Sidecar A small note DA keeps next to each file, named like the file plus .meta.json. It holds the date DA found, a fingerprint of the file, and any tags. Leave sidecars where they are.
Terminal A window where you type commands. Windows calls it PowerShell or Terminal. DA's menu runs in one.
Command Something you type in the terminal, like da status, then press Enter.

Getting started

1. Get DA

2. Install it (once per computer)

  1. Open File Explorer and go to the folder with DA.exe (usually Downloads).
  2. Click in the address bar at the top of the window, type powershell, and press Enter. A terminal window opens in that folder.
  3. Type this and press Enter: powershell .\DA.exe install
  4. If Windows shows "Windows protected your PC", click More info, then Run anyway.
  5. Close the terminal window. From now on, da works in any new terminal window.

DA is now at C:\Scripts\DA\DA.exe. To update DA later, download the new DA.exe and do these steps again; your archives aren't touched.

3. Create your first archive (once per archive)

  1. Open a new terminal: press the Windows key, type terminal, press Enter.
  2. Type this (with your own drive, name and years) and press Enter: powershell da setup D:\jane-archive-199x --years 1990-1999

What happens depends on the folder:

--years 1990-1999 is optional. With it, a photo taken in another decade (say 2005) is left in intake\ and listed for you, so you can move it to the right archive (see da split).

Your archive now looks like this:

D:\jane-archive-199x\
  Open DA.cmd           <- double-click this to open DA in this archive
  da-archive.yaml       <- this archive's settings
  intake\
    photos\             <- put photos here (any subfolders, any names)
    docs\               <- documents: PDF, Word, Excel
    scans\              <- what your scanner saves: PDFs and scanned pictures
  photos\organized\     <- DA files photos here, by year and month
  documents\organized\  <- and documents here
  output\               <- DA's records and reports

4. Open it

Double-click Open DA.cmd in the archive folder. DA's menu opens. That's all you need from here on.

The menu

 DA - jane-archive-199x   D:\jane-archive-199x   years: 1990-1999
 intake: 1,204 files waiting    organized: 5,873 photos, 12 documents    last run: 2026-10-13 21:31

  1 Process intake    2 Status    3 What needs review    4 Undo last set-aside
  5 Refresh index     6 Switch archive    7 New archive    U User guide    H Help    Q Quit

Type the number or letter, then press Enter.

Key What it does
1 Process intake Files what's in intake\. See da run.
2 Status This archive at a glance: what's waiting, what's filed, the last run.
3 What needs review What the last run left for you to look at, with the reasons.
4 Undo last set-aside Puts the duplicates from the last run back where they were.
5 Refresh index Updates DA's list of files, for example after you moved files yourself.
6 Switch archive Open another archive on this computer.
7 New archive Create a new archive, or turn a folder into one.
U User guide Opens this guide in your web browser.
H Help A short reminder of how DA works.
Q Quit Leaves the menu. The window stays open for typing commands.

Typing da on its own in any terminal opens the menu too. Outside an archive, it lists the archives on this computer for you to pick from.

Common workflows

Workflow What it's for Menu
Add photos from a phone or camera Get photos into intake (File Explorer)
Add scanned documents Get paper into the archive (your scanner)
da run File what's in intake 1
da report See what's there and what needs you 2, 3
Fix what needs review Help DA with photos it couldn't date 3
Duplicates: put back or delete Undo a set-aside, or free the space 4
da split Move photos from another decade to the right archive steps below
Contact sheets See a whole folder of photos on one page (made for you)
da find Search by month, name or tag steps below
da tag Label files (beach, grandma, taxes) steps below
Switch between archives Work in another archive 6
Update DA Get the newest version steps below

da run is a command you can type. The other "da ..." names stand for a few commands or menu items used together.

Add photos from a phone, camera or memory card

  1. Open the archive's intake folder in File Explorer: D:\jane-archive-199x\intake\photos\.
  2. Make a folder for this batch, named so you'll recognise it, e.g. phone-2024-summer.
  3. Copy the photos into it:
    • iPhone: connect it with its cable and unlock it. Tap Trust if it asks. In File Explorer, open This PC > Apple iPhone > Internal Storage > DCIM and copy the folders you want. (See iPhone HEIC photos about the photo format.)
    • Android phone: connect it, choose File transfer on the phone, then open This PC > (your phone) > Internal storage > DCIM > Camera.
    • Camera or memory card: put the card in the computer (or connect the camera), then open its drive and the DCIM folder.
  4. Copy, don't move, until DA has filed them and you've checked the result.
  5. Then process them.

Any folder names and file names are fine. DA works out the dates itself.

Add scanned documents

  1. Set your scanner to save into D:\jane-archive-199x\intake\scans\ (or copy the files there afterwards).
  2. PDF is best for documents. Pictures (.jpg, .png, .tif) saved in scans\ are treated as documents too, not as photos.
  3. Word and Excel files and other PDFs go in intake\docs\.
  4. Then process them. Documents are filed in documents\organized\ by the date inside them (when they were scanned or created).

da run: file new photos and documents

Menu: 1 Process intake. DA lists the folders in intake\ and how many files each holds:

intake\photos\
 #  folder                         files
 0  process all of intake\photos\  5,081
 1  phone-2024-summer\             1,204
 2  scans-from-grandma\              877
  number: open   0: process   text: filter   .. up   Enter: back

DA then works through seven steps. Before each step that changes anything, it asks; type y to go ahead, or n to stop there (nothing after that point changes).

Step What happens Changes files?
1 Index Lists everything in the archive No
2 Hash Fingerprints the photos that could be copies No
3 Duplicates Moves exact copies to _duplicates-holding\ Yes, if you say y
4 Preview Works out each photo's date, new name and folder Only writes the sidecar notes
5 Check Shows how many will be filed, by year, and warns about anything odd No
6 File Renames and moves the photos into organized, then checks each one arrived intact, and makes each folder's contact sheet Yes, if you say y
7 Refresh Updates the index No

How long it takes: a few minutes for a few hundred photos; roughly an hour for every 50,000. It's fine to leave it running.

What stays in intake, on purpose: - Photos with no date anywhere (none inside the file, none in its name). See Fix what needs review. - Photos from another decade (with years set). See da split. - Videos (.mov, .mp4): DA doesn't file videos yet. The video half of an iPhone Live Photo is the exception: it's filed with its photo. - Camera raw files (.CR2, .NEF, ...) without a matching JPG. With a matching JPG, the raw file is filed right next to it.

Running it again is always safe. Files already filed aren't touched, and new ones are processed the same way.

From a terminal (handy for leaving a big run going overnight):

da run                                  # all of intake
da run intake\photos\phone-2024-summer  # one folder
da run --yes                            # don't ask; go straight through
da run E:\old-backup                    # a folder outside the archive: DA offers to copy it in first

da report: what's in the archive and what needs you

Menu: 2 Status and 3 What needs review.

  1. 2 Status: the archive's name and years, what's waiting in intake, what's filed, the last run.
  2. 3 What needs review: what the last run left behind, grouped by reason, with examples:

    • No date (in the file or its name)
    • Taken outside this archive's years
    • File name and camera date disagree (DA used the date in the name)
    • Duplicate inside the folder (left for you to decide)

    The full list is saved as review.csv in that run's folder (DA shows where). It opens in Excel. 3. More detail, from a terminal: powershell da db stats # how many photos and documents, by year da intake status # how far each intake folder has got da validate photos\organized # check what's already filed: names, folders, notes (nothing moves) 4. Every run's record is kept in output\runs\<date-time>-run\: a summary, the duplicate list, and the preview and filing reports, file by file.

If you added or moved files yourself, choose 5 Refresh index first so the numbers are current.

Fix what needs review

Choose 3 What needs review, then for each reason:

Duplicates: put back or delete

Exact copies are moved to _duplicates-holding\<date>\ in the archive, in the same folders they came from.

da split: move files to the right decade's archive

With years set (e.g. 1990-1999), a photo taken in another decade stays in intake, listed as "Taken outside this archive's years". To move those to their own archive:

  1. List them: 3 What needs review. Note where it saved review.csv.
  2. Create (or pick) the other archive: da setup D:\jane-archive-200x --years 2000-2009.
  3. Move them there, with their sidecars. In a terminal, with your own paths (this moves the 2000s ones; the detail column starts with the date, e.g. Taken 2005-07-04, ...): powershell $review = "D:\jane-archive-199x\output\runs\<date-time>-run\review.csv" $to = "D:\jane-archive-200x\intake\photos\from-199x" New-Item -ItemType Directory -Force $to | Out-Null Import-Csv $review | Where-Object { $_.detail -like "Taken 200*" } | ForEach-Object { Move-Item -LiteralPath $_.file -Destination $to if (Test-Path -LiteralPath "$($_.file).meta.json") { Move-Item -LiteralPath "$($_.file).meta.json" -Destination $to } } If two files have the same name, the second gives an error and stays where it was; move it by hand. A raw file (.CR2) beside a moved JPG isn't on the list; move it too.
  4. File them there: open the other archive (its Open DA.cmd, or 6 Switch archive) and choose 1 Process intake, folder from-199x.

da find: search the archive

DA keeps an index of every file: its name, folder, date and tags. Choose 5 Refresh index first if anything changed, then in a terminal in the archive:

Or just browse: every photo is in photos\organized\<year>\<year>-<month>\, in date order, and each folder's _contact-sheet.pdf shows them all on a page or two.

Contact sheets: a folder at a glance

Every folder DA files photos into gets a contact sheet: _contact-sheet.pdf, small pictures of all its photos, 20 to a page, each with its name and the date and time it was taken. Double-click it to see a whole month at once, or print it.

da tag: label photos and documents

There's no tag command yet, so for now a tag is added by editing the file's sidecar:

  1. Open the sidecar next to the photo, e.g. photo_19980704_101500_ab12.jpg.meta.json, with Notepad (right-click > Open with > Notepad).
  2. Find the "photoit" part (for a document, "scanit") and its "tags": [] line. Put your tags inside the brackets, in quotes, with commas between them: json "tags": ["beach", "grandma"], Change nothing else, and save.
  3. Choose 5 Refresh index, so da find can see the new tags.

Switch between archives

Update DA

Download the newest DA.exe and install it the same way as the first time (Getting started). Close any open DA windows first. Your archives aren't touched. To see which version you have: da version.

Less common workflows

Workflow What it's for
iPhone Live Photos (.MOV files) The short videos that come with iPhone photos
iPhone HEIC photos The iPhone's photo format
Edit an archive's settings Change its name, years or intake folders
Share an album with Google Photos Let family see some photos online
Process a folder from somewhere else A USB stick, an old backup, another drive
Start a new archive for another person or decade One archive per person per decade
Use DA on another computer Take an archive on a USB drive to another PC
Back up an archive Keep a second copy safe
Check what's already filed A check-up of organized
Do the run's steps one at a time For a careful look between each step
Coming soon What DA will do next

iPhone Live Photos (.MOV files)

An iPhone Live Photo is two files with the same name: the photo (IMG_1234.HEIC or .JPG) and a 2-3 second video (IMG_1234.MOV).

iPhone HEIC photos

iPhones save photos as HEIC (IMG_1234.HEIC): the same quality as JPG in about half the space.

Edit an archive's settings (da-archive.yaml)

Each archive's settings are in da-archive.yaml in its folder.

  1. Make a copy first: right-click da-archive.yaml > Copy, then Paste in the same folder. If anything goes wrong, rename the copy back.
  2. Open it with Notepad (right-click > Open with > Notepad).
  3. Change what you need. Keep the spaces at the start of each line exactly as they are; they matter. Lines starting with # are notes and are ignored. ```yaml archive: name: "jane-archive-199x" # the name shown at the top of the menu years: "1990-1999" # the years this archive takes; null for any year

    intake: # the folders in intake\ and what each one holds photos: photo docs: document scans: document receipts: document # an extra folder: anything in it is filed as a document ``` 4. Save, then check: open the archive's menu. If DA can't read the file, it says which line is wrong; fix it or put the copy back.

A new intake folder you add here is created the next time you run da setup on the archive (da setup D:\jane-archive-199x), or you can create it yourself.

Share an album with Google Photos

DA doesn't upload to Google (Google no longer lets apps like DA create shared albums), but your filed photos are easy to share by hand:

  1. Go to photos.google.com and sign in.
  2. Click Upload (or drag photos onto the page) and pick them from the archive, e.g. D:\jane-archive-199x\photos\organized\1998\1998-07\.
  3. Click Create (the +) > Album, give it a name, and add the uploaded photos.
  4. In the album, click Share and choose people, or Create link to send the link to anyone.

The originals stay in your archive; Google gets copies.

Process a folder from somewhere else

For photos on a USB stick, an old backup drive, or anywhere outside the archive:

da run E:\old-backup\photos --archive D:\jane-archive-199x

DA offers to copy the folder into the archive's intake\ and processes the copy, so it can check every photo against what's already filed. The originals aren't touched; delete them yourself once you're happy.

Start a new archive for another person or decade

da setup D:\sam-archive-201x --years 2010-2019

Then double-click its Open DA.cmd. To make an archive from a folder that already has photos in it, point da setup at that folder: DA moves its contents into intake\, and lists every move in output\runs\<date>-setup\moved.csv (where each item was, and where it went).

Use DA on another computer

An archive is just a folder, so it can live on a USB drive and move between computers.

  1. Install DA on the other computer.
  2. Plug in the drive and double-click the archive's Open DA.cmd. It works whatever drive letter Windows gives the drive.
  3. Each computer keeps its own list of archives for 6 Switch archive. Opening an archive once with its Open DA.cmd adds it to that computer's list.

Back up an archive

Everything about an archive is inside its folder: the photos, the documents, the settings, the sidecar notes and the records. To back it up, copy the whole archive folder to another drive (File Explorer: right-click the folder > Copy, open the backup drive, Paste).

Check what's already filed

da validate photos\organized
da validate documents\organized\2010

This checks names, folders and sidecar notes, and finds duplicates inside that folder. It's a check only: nothing moves (it just adds any missing sidecar notes, and remakes any contact sheet whose folder has changed). The report is saved in output\validateit\.

To fix what it found in organized (wrong names, a photo in the wrong month), add --mode repair. On intake, or on a folder outside the archive, repair stops and tells you to use da run instead, which sets duplicates aside first.

Do the run's steps one at a time

The same steps as da run, one command each, for when you want to look closely between them:

da db build                                          # 1 index
da intake hash --folder phone-2024                   # 2 hash (folder inside intake)
da intake set-aside --folder phone-2024              # 3 plan only: what would be set aside
da check output\runs\<ts>-set-aside\plan.csv         #   re-check a sample of the plan
da intake set-aside --folder phone-2024 --apply      #   set them aside
da validate intake\phone-2024 --kind photo           # 4 preview
da check output\validateit\validateit-report-<ts>.json   # 5 check
da validate intake\phone-2024 --kind photo --mode repair --force   # 6 file (--force: you did 2-3 yourself)
da verify <the repair report it printed>
da db build                                          # 7 refresh

Coming soon

If something goes wrong

What you see What to do
'da' is not recognized Close the terminal and open a new one. If that doesn't help, install DA again.
Windows protected your PC Click More info, then Run anyway. DA isn't signed by a company, so Windows asks once.
Not inside an archive Open the archive with its Open DA.cmd, or type da and pick one, or add --archive D:\jane-archive-199x to the command.
DA.exe is in use while updating Close every DA window, then install again.
A run seems stuck It's probably working through a big folder. Big runs take hours; the step number shows where it is. To stop, press Ctrl+C. Photos already filed stay filed, and running it again carries on with the rest.
A photo was filed with the wrong date The camera's clock was wrong. Rename the file in organized with the right date at the start, and move it to the right month folder.
Nothing to file Everything in that folder is either filed or waiting for you. See 3 What needs review.
Files are in _duplicates-holding that you want back 4 Undo last set-aside, or da intake undo "<run folder>\set-aside-moved.csv".

Reference

How DA works out a date

In this order:

  1. A date and time in the file name (2024_07_04_10_15_00.jpg, 20240704_101500.jpg).
  2. The date stored inside the file:
    • photos: the camera's "date taken", including iPhone HEIC photos. A camera whose clock was never set (1 January 1970) doesn't count.
    • PDFs: when the PDF was made (scanned, printed or saved).
    • Word, Excel, PowerPoint: when the document was created.
  3. A date without a time in the name (2010-04-27, or US-style 04-27-2010). If the date inside the file is from that same day, its time is used too.
  4. A month and year in the name (Resume April-2010): the date inside the file, if it's from that month. Otherwise only the month is known, which isn't enough, and the file stays for review.
  5. A year only (Beach 1998.jpg): not enough; it stays for review.

When the name and the date inside disagree, the name wins, and the file is listed for review.

Photos are named photo_YYYYMMDD_HHMMSS_xxxx.jpg and documents doc_YYMMDD_HHMMSS_xxxx.pdf; the last four characters come from the file's fingerprint, so two photos taken in the same second still get different names.

Photo or document?

PDFs and Word, Excel and PowerPoint files are always documents. A picture (.jpg .png .tif .bmp) could be a photo or a scan, so the intake folder decides: in docs\ or scans\ it's a document; anywhere else it's a photo. To decide for a whole run: da run intake\old-scans --kind document.

Which archive a command works on

  1. The one you name: --archive D:\jane-archive-199x (before or after the command).
  2. Otherwise, the archive the folder you name is in.
  3. Otherwise, the archive you're in: the terminal's current folder, or one above it.

Commands

Command What it does
da The menu
da run [folder] File what's in intake (or one folder of it)
da status This archive at a glance
da setup <folder> [--years 1990-1999] Create an archive, or turn a folder into one
da archives [--open N] The archives on this computer
da guide [--pdf] Open this guide (or its PDF)
da db build / da db stats / da db query "<SQL>" The index: refresh, counts by year, search
da intake status / da intake undo <moved.csv> Intake progress; put duplicates back
da validate <folder> Check a folder (nothing moves)
da contact-sheets <folder> [--force] Make the contact sheets for every folder of photos in it
da findit tags <folder> -r <tag> Find files by tag
da pair-movies [--apply] Put Live Photo videos left in intake beside their filed photo
da heic-to-jpg <folder> [--out <folder>] JPG copies of HEIC photos
da version Which version of DA this is
<DA.exe> install Install or update DA on this computer