Native Shell
Native Shell: AI-generated UI, native in your app, on every platform. Apps on iOS, Android, macOS, Windows and Linux, GPUI apps and web pages load signed, sandboxed TSX modules at run time and draw th
Declutter a project's root directory by taming configuration file sprawl.
Translation pending
Developer toolsRust · ShellGitHub @jmelahmanOnlineOwner unconfirmed
Have you tried it? One tap is enough. No sign-in needed.
Owners of public repositories under a personal GitHub account can sign in to verify ownership and manage the introduction themselves. No administrator approval is needed.
Sign in, generate a verification file, and commit it to this repository’s default branch within 30 minutes. Files on other branches or forks do not count. Then check the file below to manage the project without administrator approval. Keep the file to retain your access.
If needed, you will go to sign-in. After signing in, return here and press your chosen verification button again.
Run /nomorevibe verify in your project folder to verify ownership and manage the introduction yourself.
Verify in one minuteAsk about other verification options
Declutter a project's root directory by taming configuration file sprawl
Translation pending
Taken from the repository README
Loading the full README.
Read the full README ↗Declutter a project's root directory by taming configuration file sprawl.
before after
────── ─────
.claude/ .config/
.cursor/ .github/
.editorconfig src/
.github/
.npmrc
.yarn/
src/
Every tool wants a dotfile at the repository root.
undot moves them into a single tracked .config/ directory.
Gitignored symlinks point back to the root, so every tool keeps working.
A pre-commit hook (or prek) recreates the symlinks on every clone and checkout.
Teammates install nothing and notice nothing.
uv tool install undot
Small static binaries (~450KB, instant startup) for Linux and macOS, also on GitHub releases. The pre-commit hook (below) needs no install at all.
undot migrate # or name entries: undot migrate .claude .cursor
git add -A && git commit
One idempotent command:
.gitignore (existing rules that reached inside a moved directory get matching .config/ patterns)migrate writes this hook config. After clone, checkout, merge, or rebase, it
restores any missing symlink:
default_install_hook_types:
[pre-commit, post-checkout, post-merge, post-rewrite]
repos:
- repo: https://github.com/jmelahman/undot
rev: v0.4.1
hooks:
- id: undot
CI checkouts don't run hooks. Most tools accept an explicit config path, so a file like
.goreleaser.yaml can live in .config/ with no symlink at all:
undot migrate .goreleaser.yaml
echo 'nolink .goreleaser.yaml' >> .config/undot.conf
- run: goreleaser release --clean --config .config/.goreleaser.yaml
.gitignore, .gitattributes, and .gitmodules are never migrated, and other .git*
files only if you name them. .github and .pre-commit-config.yaml require --force,
because a fresh clone must be able to bootstrap the hook..venv, .env, .golangci.yml, ...) are
skipped unless you name them.git rm --cached command you'll want afterwards.Tune the scan in .config/undot.conf or ~/.config/undot/undot.conf, one
name or glob per line:
# never migrate these here
.idea*
# do migrate .env, despite the default skip
!.env
# keep in .config/ without a root symlink
nolink .goreleaser.yaml