Skip to content

Project layout ​

A developer reference to how the Codeome source is organised.

main/          Electron main process
  main.js        window, menus, IPC handlers
  ssh.js         shared SSH connection (ControlMaster), remote files
  sftp.js        long-term storage over SFTP (e.g. ERDA): listing, files, transfers
  slurm.js       squeue / sacct / scancel / sbatch
  zenodo.js      Zenodo REST client
  github.js      GitHub accounts: token validation, per-command credentials for Git and gh, Keychain-encrypted
  config.js      settings + Keychain-encrypted tokens
  secrets.js     your own secrets: their names, and which processes get them as environment variables
  chat.js        the Agent chat's headless Claude Code sessions (stream-json), saved chats
  stats.js       each chat's token meter (context window, tokens a turn) and the statistics log
  kit.js         installs/updates the agent kit in a project
  jobs.js        reads agent job records from .codeome/jobs/
  usage.js       Claude/Codex accounts and usage limits; writes ~/.codeome/usage.json
  rtools.js      R plots (redraw, export) and R libraries; puts main/r/*.R in ~/.cache/codeome on each host
  r/             plots.R (sourced into R consoles), render.R (redraws a recorded plot), packages.R
  codeome-statusline   Claude Code status line that records rate limits
  preload.js     the bridge the interface is allowed to use
renderer/      Interface (plain JS, no build step)
  index.html, styles.css
  js/            one file per area: projects, usage, editor, rmd, terminals, files, transfer, slurm, git, publish, packages, plots, chat, agents, settings
                 (stack.js: the stacked sections of Files and Packages)
kit/           the agent kit: roles/ (one file per role), skills/, bin/codeome-agent, manifest.json;
               chat.md, the orchestrator instructions for the Agent chat
               personas/ (specialists offered in an empty chat; ship with the app, not installed into projects)
build/         the app icon: icon.icns for the packaged app, icon.png for the dock under npm start, and the SVGs they were drawn from
test/          parser tests (npm test) and a screenshot helper
               github.test.js (token validation and credentials), gitaccounts-ipc.test.js (account and identity IPC),
               config-secrets.test.js (tokens in the config file)

Working on Codeome itself: open this folder in Codeome and ask for the change in the Agent chat. npm start relaunches it.