Denly

Projects & repositories

A Denly project maps work to a runner folder, with Git optional.

Add projects from App bar project switcher → Add a project. A Git project can use GitHub, GitLab, or a manually registered repository. A Local project · no Git starts as a plain folder: the runner never initializes Git, and its task flow ends with Review changes → Mark complete instead of a pull request and Merge.

denly install <project> clones a Git project or creates its no-Git folder at ~/Denly/<project-id>. For a no-Git project, denly install <project> --path <folder> creates that exact folder when missing or explicitly adopts it when it already exists. For a Git project, --path only adopts an existing checkout after validating its origin.

Absolute runner paths stay machine-local; Denly stores the project kind, not one teammate's filesystem location. Project settings control who can see the project and which personal folder it sits in.

Owners and admins can also change a project's source there, under Danger zone: connect a local project to a Git repository, or detach the repository and keep working in the folder. Connecting asks for the host, the repository path, and its default branch – name the branch the repository actually uses, because it becomes the base for every diff, pull request and deploy. For a self-managed GitLab, give the instance address too; blank means gitlab.com. Detaching leaves the checkout and its .git in place on every machine. Stop any live runner or Chat session first – the server refuses while one holds the project – then re-run denly install on each machine so it picks up the new kind.

The same panel moves a project to another workspace you own. Runner credentials, the GitHub App installation and integration connections stay behind, because each is trusted per workspace; every machine re-runs denly install afterwards.

You set the naming conventions on the Defaults screen, at workspace scope or per project: the branch, commit and pull-request title shapes the agent uses, with placeholders such as the task number and slug. The merge method (squash, merge or rebase) lives there too.