Getting started
This is the shortest real path from nothing to a repository with your code in
it. It uses plain git — there is no extra tooling to install.
1. Create an account
Section titled “1. Create an account”Sign up at neosource.dev/signup. Signups are open; there is no waitlist or invite code.
If the handle you pick is already owned by someone on GitHub, signup pivots to a GitHub OAuth flow instead of failing: handles are claimed by proof, so the GitHub account holding that name is the one that gets it here.
Signup is rate-limited to five accounts per source IP per hour, which only matters if you are creating several at once.
Already have an account? Log in.
2. Create a repository
Section titled “2. Create a repository”Go to /new. You need a name and a visibility:
- Public — anyone can read it.
- Private — only you and the people you grant access.
Your repository then lives at https://neosource.dev/<owner>/<repo>.
The same page can import an existing repository from a public Git URL instead of starting empty — see Migrating from GitHub.
Or just push
Section titled “Or just push”You can skip this step entirely. Pushing to a repository that does not exist yet creates it, over SSH and over HTTPS alike:
git remote add origin ssh://git@neosource.dev/<your-handle>/my-project.gitgit push -u origin mainRepositories created this way are private. Change that on the repository’s settings page if you want it public.
The rules are the same ones the /new page follows: you have to be
authenticated (an anonymous push is challenged, not accepted), and you have to
be allowed to create repositories where you are pushing — your own namespace
always, an organization only if it has granted you that. A git clone or
git fetch never creates anything, so a typo in a clone URL still fails
cleanly.
3. Set up authentication
Section titled “3. Set up authentication”Pick one. Both are managed at /settings/developer.
SSH key
Section titled “SSH key”Add your public key on that page, then use the SSH URL. This is the usual choice for day-to-day work.
Personal access token
Section titled “Personal access token”Create a token on the same page and use it over HTTPS. When Git prompts for credentials:
- Username — anything. It is ignored.
- Password — your token.
Tokens are fine-grained and expiring. For pushing, grant repo:write and
restrict the token to the repository you are pushing to. For a token that only
needs to clone or pull, repo:read is enough.
4. Push
Section titled “4. Push”Both URL forms are shown on the repository page.
# HTTPS — the .git suffix is requiredgit remote add origin https://neosource.dev/<owner>/<repo>.git
# or SSH — the .git suffix is optionalgit remote add origin ssh://git@neosource.dev/<owner>/<repo>.git
git push -u origin mainPushing an existing project is the ordinary sequence, with nothing neosource-specific about it:
cd my-projectgit remote add origin https://neosource.dev/<owner>/my-project.gitgit push -u origin main5. Look at it
Section titled “5. Look at it”Open https://neosource.dev/<owner>/<repo>.
| View | Path |
|---|---|
| Code browser | /<owner>/<repo>, plus /tree/… and /blob/… |
| Commits | /<owner>/<repo>/commits/<ref> |
| A single commit | /<owner>/<repo>/commit/<oid> |
| Pull requests | /<owner>/<repo>/pulls |
| Issues | /<owner>/<repo>/issues |
| Actions (CI) | /<owner>/<repo>/actions |
| Operations | /<owner>/<repo>/operations |
| Settings | /<owner>/<repo>/settings/general |
Using jj instead
Section titled “Using jj instead”If you use jj, it works against the same URLs with no extra configuration, because jj speaks Git:
jj git clone https://neosource.dev/<owner>/<repo>.gitYou never have to. Git is the default and fully first-class — see Protocols: Git and jj.
Next steps
Section titled “Next steps”- Set up CI — workflows go in
.neosource/workflows/, not.github/workflows/. That catches nearly everyone once. - Migrating from GitHub — bring an existing repository across.
- The storage engine — what is underneath.
- Project status — what is and is not ready.
About the neo CLI
Section titled “About the neo CLI”neosource has a command-line client, neo, and it is installable now:
curl -LsSf https://get.neosource.dev | shNothing on this page needs it — plain git and the web UI are the supported
path, and stay that way. neo is worth having for issues, pull requests,
running a workflow locally, and registering your machine as a CI runner. See
Install the CLI.