Aswadh Shyma Sajeevan

Free desktop app for battery cycling data

Cyclara

Every cycle, clearly.

Open a cycling file from EC-Lab, Arbin, Maccor, Neware, BaSyTec, Novonix, PEC or Landt. Cyclara finds every charge and discharge, asks you only what the file cannot say, and returns capacities, Coulombic efficiencies, dQ/dE peaks and figures at journal size, with every number also written out as a table.

Version 0.8.0, released 20 October 2026, for Windows 10 or 11 and macOS 14 or later. Free and open source under GPL-3.0; it carries its own Python, works offline and never changes your files. Release notes and checksums, source code.

Cycles
1–50
First discharge
117.3 mAh g−1
Retention at cycle 50
91.1 %
Mean efficiency, cycles 2–50
99.65 %
A synthetic cell from Cyclara's demonstration file, 50 cycles, analysed by Cyclara itself. Point at a curve, or drag along the strip (arrow keys work too), to bring one cycle forward.

A look inside

The app's own screens, on its demonstration files. Click a picture to see it full size.

Four views of one cell, linked.

Potential against capacity, capacity and efficiency by cycle, dQ/dE, and the average potentials. The cycle you focus appears in all four; the strip underneath picks the cycles the figures will export.

Undo any answer with Ctrl+Z; Ctrl+K finds any action by name. Light and dark themes, and it fits a 14-inch laptop at 150 % scaling.

What you take away

Export writes everything into a new folder and never overwrites. A typical folder holds the following.

my_cell_export/
fig1 … fig7, fig_summary
Figures: potential against capacity, capacity and efficiency, dQ/dE, average potentials, the whole test against time, the dQ/dE map and surfaces, and a four-panel summary. PDF, SVG and PNG.
summary.json
The headline numbers: first-cycle capacities and efficiency, retention, the cycle at 80 %, fade per cycle, mean efficiency, average potential and hysteresis.
cycles.csv
One row per cycle: capacities in mAh and mAh g−1, Coulombic efficiency, retention, Δx, average and mid-capacity potentials, energies, energy efficiency, C-rates.
branches.csv
One row per charge or discharge, split into constant-current and constant-voltage parts, each checked against the instrument's own counter.
rests.csv
Every rest: duration, potential at its start and end, relaxation.
curves_*.csv, dqde_*.csv
Full-resolution curves, differential capacity on a stated voltage grid, every peak with its partner, and the cycle-by-cycle map.
metadata.json
Everything the file's header declares, including the programmed step table.
settings.json
The file's SHA-256, the columns used, every convention and choice, the equations, the figure checks, a methods paragraph and the citation.
origin/
The same tables laid out for Origin, and a script that builds an editable .opju on a PC with Origin 2021 or later.
The four-panel summary figure: potential against specific capacity for selected cycles, capacity and Coulombic efficiency by cycle, dQ/dE with discharge on the left and charge on the right, and average potentials by cycle
fig_summary as exported, at Nature's double-column width (synthetic demonstration file).
Two 3D surfaces of dQ/dV against cell voltage and cycle number, one for charge and one for discharge
fig7_dqde_surface for the synthetic full cell with several plateaus: the differential capacity of every cycle as surfaces, charge (a) and discharge (b). Against cell voltage the derivative is dQ/dV; against an electrode potential Cyclara writes dQ/dE. Both panels share one voltage scale, so a pair of peaks lines up.

Why trust the numbers

Each claim with the evidence behind it. The full method is in the cycling method specification.

It does not guess.
A file cannot say which current direction charges the cell, whether a cycle starts with a charge or a discharge, what its potential column measures, or how much active material was in the electrode. Cyclara asks for them (the cycle order only when a file starts with a discharge), shows what the file suggests, and withholds any value that depends on an unanswered question, saying why.
It agrees with the instrument.
On a 110-cycle lithium half-cell, Coulombic efficiency matches EC-Lab's own column to 4 × 10−6 % and discharge capacity to 6 × 10−9 mAh, from the binary .mpr and from its text export alike. Every branch is checked against the instrument's charge counter, and a time reset or gap is never integrated across.
It is honest about other cyclers.
Sixteen import profiles, each written from a real export that was read and checked, with that file and what it showed recorded in the profile. Any other export is learned from one file, asking only the conventions no file states. Nothing is claimed for a dialect nobody has checked.
It describes plateaus without labelling them.
Each dQ/dE peak gets the capacity under it, a partner in the opposite branch or the status unpaired, and the cycles in which it is seen. The average potential of a branch stays energy over charge, which with several plateaus is their capacity-weighted mean.
The method travels with the result.
settings.json records the file's SHA-256, the columns used, each choice and the equations. The app writes a methods paragraph and the citation of the exact version, so someone else can repeat the analysis.
Large files open quickly.
A million-row EC-Lab export opens in about 3 s. Other cyclers' exports are read in blocks, with progress shown, up to 2 GB.
It is tested, and so are its releases.
More than 900 automated tests, from exact arithmetic on synthetic cells to real instrument files. Each release on GitHub is immutable: its files cannot be swapped, each has a published SHA-256, and GitHub signs a record of what was released.
It stays free.
Open source under GPL-3.0. No account, no internet after installation, and your measurement files are read, never changed.

Cyclers it reads

Recognised from the file itself. What was checked for each dialect, and on which real file, is in the compatibility matrix.

CyclerFilesChecked on
BioLogic EC-Lab, BT-Lab.mpr and .mptEC-Lab's own counters; public files and a 110-cycle cell
ArbinMITS Pro CSV and Excel exports; .res tables saved as CSVreal exports: three dialects in full, a fourth by its columns
Maccortext exportsreal exports: three dialects in full; one more on inspected files, one recognised only
NewareExcel and flat CSV exportsreal exports, both dialects
BaSyTecresult filesa real export (a charge only)
NovonixUHPC CSVa real export (one charge step)
PECCSVa real export; a second dialect recognised
Landt, LANHEExcel exportsa real export
Any othera text or spreadsheet exportlearned from one file on the import page

Instrument binaries other than .mpr (Arbin .res, Neware .nda and .ndax) are not read: export them to text or Excel from the instrument's software first.

Install

Each download carries its own Python and every package, so nothing else needs installing.

Windows

Windows 10 (version 1903 or later) or 11, 64-bit.

Cyclara-0.8.0-Setup.exe
  1. Run the installer and click Next, Install, Finish. It installs for you alone, without an administrator password, and replaces 0.7.0 if you have it.
  2. The first time, Windows may say "Windows protected your PC", because the installer has no paid signature. Click More info, then Run anyway.
  3. Open Cyclara from the desktop or the Start menu, and try the demonstration file from its home page.

macOS

macOS 14 Sonoma or later. Apple menu, About This Mac shows which chip you have.

Apple silicon (M1 to M4)Intel
  1. Unzip the download (Safari does it for you) and drag Cyclara.app to Applications.
  2. The first time, macOS says it cannot verify the app. Click Done, open System Settings, Privacy & Security, and click Open Anyway. On macOS 14, right-click the app and choose Open instead.
  3. Open Cyclara again; from then on it opens normally.

Handout (PDF, 15 pages)Every step with pictures, and a page on reading several plateaus.

Check what you downloaded

Download only from this page or the release page. If someone sends you a file another way, compare its SHA-256 with this list, which is also attached to the release as SHA256SUMS.txt.

7182922082ba701e517987f18c7a285464a54b4e2a503788d38d8e7ca43d2070  Cyclara-0.8.0-Setup.exe
20ab5b3d96153f5b10118e2e5ffccf3776a85759180b8f97f705f616fc528fb3  Cyclara-0.8.0-macOS-AppleSilicon.zip
fc4ad59cb0ae7da111e5d424677eff7c7cdd8c537837c555c6767b8d74d54dd1  Cyclara-0.8.0-macOS-Intel.zip
12e639bab09db54edfe321e7c6cb5318c9e1c3bd65731bf2e52d3983389d5d18  Cyclara_handout_v0.8.0.pdf
  • Windows, PowerShell: Get-FileHash .\Cyclara-0.8.0-Setup.exe
  • macOS, Terminal: shasum -a 256 ~/Downloads/Cyclara-0.8.0-macOS-AppleSilicon.zip
  • With the GitHub CLI, against GitHub's signed record of the release: gh release verify-asset v0.8.0 Cyclara-0.8.0-Setup.exe -R asajeevan/electrochem-toolkit

Cite it

If Cyclara contributed to a publication, cite the version you used. The app gives the same text under Help, Cite Cyclara.

Shyma Sajeevan, A. (2026). Cyclara: traceable analysis of battery cycling data (Version 0.8.0) [Computer software]. https://github.com/asajeevan/electrochem-toolkit

@software{cyclara_0_8_0,
  author  = {{Shyma Sajeevan}, Aswadh},
  title   = {{Cyclara: traceable analysis of battery cycling data}},
  version = {0.8.0},
  year    = {2026},
  url     = {https://github.com/asajeevan/electrochem-toolkit},
  license = {GPL-3.0-or-later},
  note    = {Free software under the GNU General Public License, version 3 or later}
}

What it does not do yet

  • Cyclic voltammetry, impedance, conductivity and batch processing across cells are not in the app yet. They are the next work.
  • The installers have been tested under Wine and by automated checks, not yet by a user on a physical Windows PC or a Mac. A report from your first installation is the most useful thing you can send.
  • The installers are not code-signed, hence the one-time warnings above.
  • The plateau analysis is verified on a synthetic cell whose answers are known by construction, not yet on a real material with several plateaus.

I built this tool for my own cycling data. During my PhD I kept rewriting the same scripts for every new cell and fixing figures by hand before every paper, and I wanted one place where the numbers are checked once and the figures come out right the first time. It is free, and it will stay free.

Aswadh Shyma Sajeevan, battery electrochemist, about me

Found something wrong?

A file it refused or read wrongly, a number that disagrees with your instrument, or a figure you still had to fix: these reports help most. Help, Report a problem in the app opens the same page.

Report a problem on GitHub