Tools
· 14 min read
I think one sentence in the oh-my-zsh (omz) repository can explain where the passion for configuring tools, boosting productivity, and perfecting one’s workflow comes from. (But I quickly gave up on using omz because I found that most of the features I needed could be achieved through other means.)
Oh My Zsh will not make you a 10x developer…but you may feel like one.
After spending dozens of hours configuring my work environment, I now truly feel like I’ve become a tool user 10 times more productive than before. I want to share these tools that have effectively helped improve productivity, so they can help more people.
- Most of them are open source and have mature community ecosystems. Many thanks to the developers of these software and tools for their efforts!
- I mainly use macOS as my work environment. Although I have a Windows PC for entertainment, I have hardly installed many software to enhance its user experience (a side note: I personally recommend that users who use Windows as their primary work environment first consider installing PowerToys and WSL). Therefore, the following software is mainly available on macOS, but most of them also provide Linux and Windows releases.
- These software/tools primarily meet my needs as a PhD student in a STEM field. If you have a similar identity/experience, I believe at least some of them will be helpful to you.
- Some of these software/tools have been compared by me with softwares with similar functionalities, and in my opinion they are at least among the best in their class.
- Feel free to ask me questions about using these tools or recommend other efficient tools to me!
Most Important #
The two software I want to recommend most are Raycast and Obsidian.
Raycast #
- Compared to Windows, macOS’s Spotlight is already a good global launcher, but before I installed Raycast, I didn’t expect this software to be able to provide such a significant improvement over Spotlight. Below is a list of its most useful features for me (which is even only a part of the software’s capabilities).
- An older similar software is Alfred; some people might prefer Alfred’s performance and features, but I prefer Raycast’s modern UI.
- Unfortunately, Raycast currently only supports macOS, but you can join their Windows waiting list (Reportedly the Windows version is very close to release).
- There are many ways to switch software on macOS (Launchpad, Dock, Mission Control, App Exposé, Stage Manager, Spaces, even Hot Corners). I’ve tried them all, but I’m not satisfied with any of them: these methods are too slow for an operation as frequent as switching windows/software.
- Raycast, as an alternative to Spotlight, can be invoked with Command+Space, and then you can open an application by typing its name.
- This is definitely still not fast enough. The truly practical way is to set a shortcut for invoking applications. For example, I now use Option+A to open Firefox, Option+O to open Obsidian, Option+Z to open Zotero, and so on (the key combinations of option + one letter were originally used in macOS to input some special characters, which are unnecessary for me). Once you experience this method, you’ll know how fast and efficient it is!
- Even better, shortcuts and abbreviations also apply to other Raycast features, such as system-level operations like sleep display, lock screen, show desktop and so on.
- Clipboard history: This is equivalent to what Win+V does in Windows. As far as I know, macOS didn’t support this simple little feature before macOS 26; but Raycast even does better than Windows: you can search through the history, pin some snippets to the top of the page, and others.
- Quicklink allows you to set opening a webpage as a Raycast command. You can also set shortcuts and abbreviations for the quicklink command, and insert placeholders within this webpage.
- As an example, I now use “pressing Option+N, typing space, typing ‘gravitational wave’” to search for all papers with “gravitational wave” in the title or abstract and publishing time within 2010-2025 in the NASA/ADS library, sorted by score. This is much faster than opening the ADS webpage, typing search criteria, selecting the time span, and choosing the sorting method.
- macOS’s file search is already much better than Windows (where this function could be heavily enhanced by Everything), but Raycast does even better; it has richer features than Spotlight.
- Raycast has good support for window management, but I’m more used to using Rectangle.
- Raycast supports snippets, for example, you can set it so that whenever you type “be “, the text becomes “Bose-Einstein condensate”, but I encountered problems with this feature, so I ultimately chose to use Espanso instead.
- Raycast has a rich community ecosystem; you can find many plugins other softwares, allowing you to executing some operations of the corresponding software/website through Raycast commands, such as Obsidian and GitHub.
- Any of the above features can make Raycast a software I wouldn’t easily uninstall, and this is just a fraction of all Raycast’s features! (I don’t even frequently use Raycast’s highly recommended AI feature). This software is one of the important reasons why I choose to continue using macOS as my work environment.
Obsidian #
- I believe that using markdown-based electronic note management software is important for everyone.
- Notes record your work process, sudden inspirations, and thoughts while reading and listening to lectures, and allow you to search and review them at any time. Their role far exceeds that of a simple memo.
- Compared to paper notes, a significant advantage of electronic notes is that you can search for any field at any time. Additionally, you don’t need to worry about the management and preservation of their physical entities.
- Markdown is a plain text file format. Compared to rich text editors like MS Word, you can focus on the text itself without having to consider choices of format, font size, color, and position. All special formats in markdown are character-based, and this format contains nothing but the content itself.
- For those who hold the belief that knowledge and information themselves cannot be organized in a linear/tree structure, markdown might indeed not be the best format. They might prefer note-taking software based on tablets and styluses.
- Notes record your work process, sudden inspirations, and thoughts while reading and listening to lectures, and allow you to search and review them at any time. Their role far exceeds that of a simple memo.
- Obsidian is an excellent markdown-based note management software. I’m currently using it to manage all my notes and even my knowledge base.
- Within the category of markdown-based note management software, alternatives (to Obsidian) include SiYuan Note (思源笔记), Notion, and others. I don’t have experience using other software, so I’m not clear about their advantages and disadvantages compared to Obsidian. I believe any of them would bring a huge improvement compared to not using any note management software at all!
- A notable feature of Obsidian is its vibrant community ecosystem. You can find many useful plugins. For me, the most important plugins mainly include:
- I am very picky about themes. Border is the best one for me after comparing and selecting many different themes.
- Latex Suite will significantly speed up your input of mathematical formulas.
- Linter and Easy Typing provide very powerful automatic formatting support.
Terminal & Coding #
- I’m not a pure geek who uses Linux/Neovim and abandons all mouse operations and graphical interfaces. I mostly use vscode and Jupyter notebook for Python programming and prefer GUI over CLI when possible. However, I have also made basic improvements to the macOS terminal, many of which are part of a wave of “rewriting common terminal commands with RUST.”
- First, replacing the default macOS terminal with iTerm2 is at least not a bad idea. It offers more powerful features and more customization options.
eza,zoxide,bat,tldr,ripgrepare modern replacements forls,cd,cat,man,greprespectively, offering advantages in efficiency/aesthetics.- If you, like I used to, are using
nanofor file editing in the terminal, switching to micro might improve your efficiency. fzfprovides important fuzzy search functionality, which you will generally prefer to use in pipelines.- I initially used oh-my-zsh to manage my terminal toolkits, but later found that I only needed its auto-completion and syntax highlighting features, both of which can be installed more directly.
- If you are accustomed to using vim and programming in the terminal, I recommend yazi for file management. You might also be interested in terminal-based AI coding copilots like Claude Code or Gemini CLI.
- For Python programming, I highly recommend two RUST-based Python tools developed by Astral: uv and ruff.
- uv is a Python version, package, and environment management tool.
- It uses
pyproject.tomlfor project definition and ensures that project dependencies and actually installed packages are consistent. - You can use
uv addto simultaneously add a dependency to your project file and install it locally. - Additionally, environment management with uv is easier: you can naturally set up a virtual environment (and different Python versions) for each Python project.
- In some cases, conda/mamba might have an advantage in package installation, but that’s not my case.
- It uses
- ruff is an efficient Python linter that you can use through a VSCode extension. I’ve replaced my previous tool, yapf, with it.
- uv is a Python version, package, and environment management tool.
macOS Enhancements #
As a user who switched from Windows to macOS, I found that both systems have some useful features that the other doesn’t have (And again, PowerToys really solved many long-standing issues on Windows). Below are some tools to customize macOS to make it better:
- mos
- macOS’s scroll wheel logic is really annoying! Simply put, you can’t set the same scrolling direction for both mouse and trackpad.
- Apple designers and some users consider this natural.
- I don’t know if versions newer than macOS 15 have fixed this issue.
- mos allows you to set the scrolling direction for the scroll wheel or trackpad separately, or set the scroll speed, inertia, and acceleration for each application individually.
- macOS’s scroll wheel logic is really annoying! Simply put, you can’t set the same scrolling direction for both mouse and trackpad.
- ice
- The length of the macOS menu bar is limited, and my MacBook Pro has a black “notch” in the top center, so often the menu bar functionality is incomplete.
- I tried multiple software for customizing the menu bar, and ice is the best, providing both powerful functionality and aesthetics.
- rectangle is a free window management software. When I started using this software, macOS’s support for window management was still very poor, and I developed a habit for this software during that time.
- stats monitors the current CPU, GPU, memory, and network usage and displays them in the macOS menu bar.
Zotero #
- Compared to Endnote, Zotero is a free and open-source literature management software that emphasizes community collaboration and has a Chinese community.
- My most commonly used plugins are Translate for Zotero, Better BibTeX, and Zotmoov.
- A great feature is that you can use Zotero Connector to save paper metadata and attached PDFs directly to Zotero with a single click on the paper’s webpage. You can then generate bibliographies or BibTeX files, and read literature within Zotero.
- A significant drawback is that this software seems to have memory leak issues on my macOS, and the performance declines sharply if too many plugins are installed.
- You may need to pay to use Zotero’s official sync function, or choose any WebDAV-supported cloud storage for synchronization.
Anki #
- As a non-native English speaker, I have tried many word memorization software during my English learning, including the most famous Duolingo and some domestic word memorization software. Before I knew about Anki, I thought the best software among them was 不背单词, which is based on similar principles as Anki but lost a lot of freedom.
- Anki is now what I consider the best software for any memory task. It uses the front and back of flashcards to construct a memory task and adjusts the review frequency for each card based on the FSRS algorithm.
- Anki is highly customizable. You can write your own CSS style code to determine the appearance of flashcards, and you can query the difficulty, next due date, even the time spent on each review, and the theoretical forgetting curve of each flashcard in the database.
- Specifically, I downloaded a COCA20000 shared deck from Ankiweb, and used the Gemini API to generate Chinese explanations for each word. This new deck has been uploaded to here.
- You can see a screen recording of me completing my daily words task here.
- Below shows my Anki activity heatmap.
Typing #
- Typing is an important way connecting me and my computer partner; I have the need to improve the speed at which I output my thoughts into the computer. On the other hand, improving typing speed is also part of “making me feel like a pro”.
- I used to have an incorrect finger-to-key assignment habit, and influenced by this bad habit, I maintained a very low typing speed for a long time.
- I started practicing typing for 30 minutes every day roughly three months ago. Initially, my practice platform was Keybr, but later I moved to Monkeytype, which has more powerful features.
- My personal page in monkey type: https://monkeytype.com/profile/sstraw.
- Welcome to be my friend in monkey type! (by typing
sstrawafter clicking “add friend”)
- Additionally, I use Karabiner (the Windows equivalent is AutoHotkey) to swap the function of Backspace and Caps Lock, because the frequently used backspace function is too far from the core area of the keyboard. This swap has been very helpful in improving typing efficiency.
- Below shows a snapshot from my monkeytype profile, and one scatter plot describing my typing practice performance in recent days.
Input method #
- Apple’s default Chinese input method is not very easy to use, and all input methods have privacy leakage issues. Finally I found RIME is the best choice for me.
- RIME (中州韵) offers a high degree of customization. I haven’t made extensive modifications, except for configuring the 雾凇词库 as RIME’s accompanying input scheme.
- RIME has different names in different OS: it is called Squirrel (鼠须管) in macOS, Weasel (小狼毫) in Windows, and Tongwen (同文) in Android.
- Besides, Input Source Pro is an input method switching tool, very useful for situations where multiple input methods are needed (Chinese and English for me). It allows setting a default input method for each application.
- I generally set Apple’s native English input method for VSCode and iTerm2, and RIME as the default input method for other applications.
Syncthing #
- I have a need to synchronize files between macOS and Windows PC. Syncthing prevent this process from explicit operations. It synchronizes files via LAN or the internet, and you can set up multiple Syncthing nodes.
- Generally, you need a 24/7 running host (like a NAS) for relay to achieve synchronization at any time. But I found an alternative: using my mobile phone as a relay node to complete synchronization tasks: generally, my mobile phone is always online whenever a file changes on any of my computers.
Time management #
- I have a strong need for time management. I need to regularly check my time allocation over a period to adjust it in the next cycle.
- I used to use macOS Calendar to record the start and end times of every event, but it is not a default time management software. Its operation is cumbersome, and it lacks the function of time statistics over a certain period.
- timeto.me perfectly meets my requirements. Its basic logic is: there are no gaps between events; you can only end the previous event by starting the next one. Time will not wait for anyone.
- This is also an open-source software.
LLM #
- The use of AI tools is not the focus of this post, as I believe my experience with LLMs (whether in architecture, theory, or tool usage) is not outstanding compared to other aspects or other people. However, I still list my LLM usage habits here.
- Gemini 2.5 Pro has been my primary LLM engine since April 2025 (via Google AI Studio). It is top-tier among all large language models in terms of Chinese expression, depth of knowledge coverage, and answer length. In some moments, I would inadvertently perceive its broad and profound understanding of human knowledge, which far exceeded my estimation of LLM’s upper limit.
- Gemini does not always agree with your opinions. Sometimes when you ask an A or B question, it will give a C answer based on its own understanding, and that answer is the most relevant.
- Claude may have the best performance among all AI in the task of “writing immediately runnable code.”
- I usually use the VSCode Copilot extension to invoke Claude for writing code. For Python code not longer than a hundred lines, I can completely trust Claude’s results (i.e., run it directly without careful checking).
- Cherry Studio is a toolkit that integrates most mainstream LLM functions and is constantly undergoing high-intensity updates. You can expect to find any latest LLM usage method in this software.
- For programmers working in the terminal, Claude Code and Gemini CLI may bring revolutionary improvements, but this is not my case.