CLOUDMORROW

Quills / Developer

DevProject

Your software projects: the repository, notes, a board, and the .env secrets on every machine.

Star · 0 Nobody has starred it yet

What it does

  • A project per repository: its git URL, its notes, its secrets
  • cm devproject init in a folder makes it a project and reads every .env file into its vault
  • cm devproject update pulls the code and writes the .env files back; clone does it on a new machine
  • One environment per file: .env.prod is prod, .env is local, and each is written back to the file it came from
  • A board per project: To Do, Doing, Done
  • The same on the phone, the web app and the terminal: import and export .env files there too

Add it to your cloud

In your cloud, open Quills: Administration → Quills as an administrator, Me → Your Quills as anybody else. On its Catalog tab, DevProject is on the Developer shelf: open it and say yes. Its id, wherever your cloud asks for a quill by name:

id devproject

Or on the command line, as an administrator for everyone, with --mine for yourself alone:

$ cm quill add devproject

Either way your cloud shows you everything below and waits for your yes.

Standard. The installer offers DevProject when you set up a new cloud, so you may have it already. How installing works

What it adds to your cloud

Datamodels

The kinds of data it works with. On a fresh cloud everyone can read and write what it brings the moment it is installed; the install sheet says so, and an administrator narrows it with circles. Records belong to the people who write them, not to the quill: removing it leaves every one where it is. What it adds — fields of its own, datamodels of its own — stays too, unless the administrator removing it chooses to drop them.

Uses

Project project

foundational

A piece of work with a beginning and an end, that tasks and hours belong to. Shared with the people on it. Which customer it is for is a CRM Quill's to add.

  • Name name text, one linerequired Encrypted
  • Status status one of Planned, Active, Done, Archived Indexed
  • Starts starts date Indexed
  • Ends ends date Indexed
  • Description description Markdown Encrypted
Uses

Secret secret

foundational

A key and its value, in a vault and an environment. Sealed under the server's key; never an assistant's.

  • Vault vault text, one linerequired Indexed
  • Environment environment text, one linerequired Indexed
  • Key key text, one linerequired Indexed
  • Value value text, one line Encrypted
  • Length length whole number Indexed
Adds fields to

Project project

foundational

Fields of its own on every project, readable by anyone who may read the record, never required.

  • Repository devproject.repo web address Encrypted
  • Vault devproject.vault text, one line Indexed
  • Env files devproject.env_files JSON Encrypted
Introduces

Card devproject.card

new, from DevProject

One thing to do on a project's board.

  • Project project link to Projectrequired · deleted with its project Indexed
  • Title title text, one linerequired Encrypted
  • Body body Markdown Encrypted
  • Lane lane one of To Do, Doing, Done Indexed

Indexed fields are kept plain, so your cloud can sort and filter by them. Encrypted fields are encrypted before they reach the disk.

Screens

ProjectsA list of projects.
BoardA board of cards. Lanes: To Do, Doing, Done; one project at a time, chosen across the top.
Project secretsA list of secrets.

Each is a tab, drawn by your cloud itself on every surface:

  • Phonethe web app, made for the phone
  • Webthe full web app, in a browser
  • Terminalthe terminal app
  • Command linecm devproject
  • Assistanttools for your assistant, as you

Its own code

None. Everything it does is declared in quill.toml and run by your cloud itself.

In its own words

A Quill for Cloudmorrow: your software projects, each with its git repository, its notes, a board, and its .env secrets, on every machine you work on.

cd ~/code/myapp
cm devproject init                 # a project, and every .env file here into its vault
cm devproject list                 # your projects

# on another machine
cm devproject clone myapp          # the repository, then its .env files written back
cm devproject update               # in the folder: git pull, then the .env files from the vault

cm devproject secrets                                  # its environments, and the file each is
cm devproject secrets import -e local -f .env          # one file in (or every file, without -e and -f)
cm devproject secrets export myapp -e prod -f .env.prod  # one environment out, from anywhere
  • One environment per file. .env.prod is prod, .env.local is local, .env is local (or default when there is a .env.local beside it). Each environment is written back to the file it was read from. .env.example and other templates, and any file git tracks, are left alone.
  • The secrets are Cloudmorrow's. They go into the Secrets manager, in a vault named after the project (myapp), sealed under the server's key, and cm secret -v myapp … reaches them as well. Installing DevProject installs Secrets.
  • Nothing local is lost. update never takes a key out of a .env file that the vault does not have: that file is left as it is and named, until you secrets import it or pass --force. Files are written mode 600.
  • The same on every surface. In the web app and on the phone a project's sheet lists its environments: save each as its .env file, or read one in; the Project secrets tab has Import .env and Export .env. In the terminal app, i inits a folder, u updates, c clones and m imports, on the project under the cursor.
  • A board per project: To Do, Doing, Done.

What it adds to your Cloudmorrow

Datamodels extends the foundational project with devproject.repo, devproject.vault and devproject.env_files; introduces devproject.card (the board); uses secret
Screens Projects (a list of projects: the vault, repository and env files bound), Board (a board per project), Project secrets (by vault and environment)
Requires the Secrets Quill
Jobs, datasets, services, webhooks, APIs none

It contains no code: everything above is declared in quill.toml. What a list of projects does on your machine is Cloudmorrow's own (checkout.py in the core), the same for every Quill that binds a vault.

Working on it

See CLAUDE.md and the skills in .claude/skills/. In short:

uv sync                  # .venv with Cloudmorrow and pytest
cm quill check           # the manifest, as a server would install it
cm quill test            # tests/, against the real record store and gate
cm quill dev --local     # a throwaway server here, reinstalled as you save

Licence

AGPL-3.0-or-later.