Naissance
A more dramatic Git Repository Genesis Utility.
Naissance creates both local and remote repositories in one shot. No context switching between terminal and browser — just run one command and your repo is alive.
Philosophy
Naissance is meant to get out of the way. The goal is always to minimize friction between "I want a repo" and "the repo exists." No prompts, no decisions at runtime, no context switching. You type one command, naissance handles the rest, and you're already writing code. Every design choice should serve this principle.
Installation
# Clone and install
git clone https://github.com/DODO-unique/Naissance.git
cd Naissance
pip install .
Requirements
- Python ≥ 3.10
- Git
- GitHub CLI (
gh) — authenticated viagh auth login
Note:
ghis a crucial dependency — naissance uses it to create remote repositories. Without it, the tool cannot function. Ifghis not installed, naissance will detect this at startup and suggest how to install it:⨯ GitHub CLI (gh) is not installed or not on PATHInstall it from cli.github.com, then run
gh auth loginto authenticate.
Quick Start
# Create a new repo "horizon" in the current directory
naissance horizon
# That's it. Local + remote, done.
What happens
┼─────────────────────────────────────────────────────────────┼
| _ __ _
| / | / /___ _(_)_____________ _____ ________
| / |/ / __ `/ / ___/ ___/ __ `/ __ \/ ___/ _ \
| / /| / /_/ / (__ |__ ) /_/ / / / / /__/ __/
| /_/ |_/\__,_/_/____/____/\__,_/_/ /_/\___/\___/
| v2.0.1
|
| Git Repository Genesis Utility
┼─────────────────────────────────────────────────────────────┼
Birthing repository...
✓ git found
✓ gh authenticated
✓ Path resolved: C:\Code\horizon
✓ Directory created
✓ GitHub repository created (private)
✓ Git initialized
✓ README.md
✓ .gitignore
✓ Initial commit
✓ Pushed to main
✨ horizon is alive.
Usage
naissance <repo_name> [--apath] [--name NAME] [--public]
| Flag | Description |
|---|---|
repo_name |
Name or path of the repo. Resolved relative to CWD. Use . for current directory. |
--apath |
Treat repo_name as an absolute path |
--name NAME |
Override the remote repository name (defaults to directory name) |
--public |
Create the remote repo as public (default: private) |
-v, --version |
Show version |
Examples
# Relative path — creates ./horizon
naissance horizon
# Nested path — creates ./projects/horizon
naissance projects/horizon
# Current directory — uses folder name as repo name
naissance .
# Absolute path
naissance "C:\Code\horizon" --apath
# Different remote name than the directory
naissance horizon --name my-cool-project
# Public repo
naissance horizon --public
How It Works
Naissance detects the state of the target directory and adapts:
| State | What naissance does |
|---|---|
| Doesn't exist | Creates the directory → gh repo create --clone → scaffolds README + .gitignore → commits → pushes |
| Empty directory | git init → scaffolds → gh repo create --source → pushes |
| Has files, no git | git init → scaffolds → stages all → commits → gh repo create --source → pushes |
| Already git-initialized | Checks no remote exists → gh repo create --source → pushes |
All decisions (visibility, scaffold files, commit message) are driven by defaults.yml — zero interactive prompts during execution.
Configuration
Edit defaults.yml next to the package to change defaults:
version: "2.0.1"
visibility: "private" # "private" or "public"
create_readme: true
create_gitignore: true
prompt_description: false
default_branch: "main"
initial_commit_message: "initial commit"
Error Handling
Naissance never leaks raw tracebacks. All errors are caught and displayed cleanly:
⨯ git is not installed or not on PATH
⨯ GitHub CLI is not authenticated. Run: gh auth login
⨯ Remote repository already exists: horizon
⨯ Permission denied: C:\Protected\path
License
See Also
- CHANGELOG.md — Version history
- ROADMAP.md — What's coming next
- KNOWN_ISSUES.md — Bugs and workarounds
Metadata
Release files for naissance 2.0.1
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | Provenance | |
|---|---|---|---|---|
| naissance-2.0.1.tar.gz | 12.2 kB | Without provenance | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| naissance-2.0.1-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 25.1 kB
Release files / naissance-2.0.1.tar.gz
| Download URL | naissance-2.0.1.tar.gz |
|---|---|
| Size | 12.2 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
2a51336ab35e199eb5cf2be7017f4b5df54265963f5d0f9d256cc558168dc609
|
|
BLAKE2b-256 checksum How to use checksums |
ddc72f32256671422cbe4a3e3168cd61b9a3dbd4aa5ba182d481c5469756e0bd
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/6.2.0 CPython/3.14.0
|
Release files / naissance-2.0.1-py3-none-any.whl
| Download URL | naissance-2.0.1-py3-none-any.whl |
|---|---|
| Size | 12.9 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
b511ad2ca4f4aad63702edf3f0687cdcb596da6dafa39024b665c7405f966349
|
|
BLAKE2b-256 checksum How to use checksums |
64daf88b1e067e95943ef1e34be089f6e1a5b1b5eb6ddd8f4edf4a3f474a383d
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/6.2.0 CPython/3.14.0
|
Security for naissance 2.0.1
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
No provenance found
None of the files in this release were uploaded with provenance metadata.
A note on package security
PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.
To learn more about protecting yourself from malicious actors, visit our package security documentation.