You are browsing as a guest. Sign up (or log in) to start making projects!

moriaan

@moriaan

Joined June 2nd, 2026

  • 11Devlogs
  • 2Projects
  • 2Ships
  • 26Votes
16 y/o teenager
i love c, neovim, arch and hyprland
Ship

If you’re like me and work a lot in the command line, you know the hassle. cd into a directory - oh, that’s a spelling mistake - and then you have to type the whole command again. jcd solves this by automatically finding the closest match below a certain threshold (configurable of course) and navigating into it. It also works recursively! You don’t even have to write /-es, you can just type space and jcd will read it as a new directory. Of course, such a productivity tool has to be blazingly fast. Well, it’s written in C, that’s not a problem!
The hardest part for me was the memory management in C. That took me a while to understand, a lot of trial and error. I like how the project turned out. Since the last ship, I fixed a whole lot of bugs and added some minor new features, check out the github releases to try it out for yourself! (The project is available on the AUR as jcd-git for the arch users out there)

  • 4 devlogs
  • 6h
Try project → See source code →
Open comments for this post

37m 21s logged

j - now works again! Also added an option to use getcwd by default instead of the PWD environment variable: jcd init -c. Also fixed a few minor bugs

0
0
5
Open comments for this post

27m 40s logged

Fixed a bug where navigating in a directory with a symlink in the path
would automatically resolve the symlink because of the getcwd usage.
Now, the PWD environment variable is used with getcwd as a fallback
when PWD does not return a valid path.

0
0
4
Open comments for this post

3h 36m 50s logged

The project was kinda messy, so I solved it. I removed a segfault when trying to navigate empty directories, made the error message have cleaner paths when the directory was not found, added malloc checking and clarified an error message further.

0
0
31
Open comments for this post

52m 34s logged

I added support for symlinks that point to directories and updated compatibility so jcd now works with filesystems that don’t support d_type (like XFS) by using c stat as a fallback

0
0
1
Open comments for this post

3h 8m 35s logged

Created base32 encoding and decoding algorithms

It may look like the program just copies the string to the “decoded_str” output but it takes the output from the encode algorithm to decode again.

0
0
3
Ship

I made a cd alternative. The most challenging part was the memory management and all the segfaults. I’m proud that it is now a robust project with a lot of configuration options, and it’s very easy to set up. To install it, you just have to put the binary in your PATH (or use the aur, .deb, .rpm or .tar.gz version) and add this to .zshrc or .bashrc: eval “$(jcd init)” (optionally with config options). More info in the README.md.

  • 6 devlogs
  • 9h
  • 13.37x multiplier
  • 116 Stardust
Try project → See source code →
Open comments for this post

53m 5s logged

Added a custom matching strictness config option for people who make a lot of typos, readme overhaul

0
0
8
Open comments for this post

1h 43m 43s logged

Added a custom alias and a custom back string so you can enter “,” for example to go one directory up instead of “..”

0
0
1
Open comments for this post

39m 44s logged

Add little functions like absolute paths, “-” to go to previous directory, a help message, …

0
0
0
Open comments for this post

49m 31s logged

Added backwards movement with “..”, fixed the init so you can just add ‘eval “$(jcd init)”’ to .zshrc or .bashrc

0
0
3

Followers

Loading…