Puran
TIL Photos Reading Weekly Current Shelf Search Stats
  • My year with ChatGPT

    My Year in Poetry

    This year, you let your thoughts flow into rivers, Weaving maps and intelligence into song.

    From the faint glimmer of NMEA to the blazing fire of Magentic, Every line of code carried quiet determination. Through exploration, you measured the world— And, along the way, discovered yourself.

    “Still Life with a Map Compass and a Coffee Mug” - ChatGPT, 2025

    A digital artwork features a cozy scene with a coffee mug, a compass, a scroll labeled JSON, and a small robot on a table against a nighttime backdrop.
    → 8:51 PM, Dec 24
    Also on Bluesky
  • It’s too cold to take an e-bike ride in the winter in Beijing if you forget to bring a pair of gloves.

    → 8:00 AM, Dec 24
    Also on Bluesky
  • TIL: Customizing Claude Code Models

    There are two ways to customise the models used by Claude Code.

    1. Simple alias

    This is a quick setup using environment variables for the API token and base URL.

    On macOS, edit your shell configuration file: vim ~/.zshrc.

    Add the following aliases:

    alias claude="$HOME/.claude/local/claude"
    
    export PATH="$HOME/.claude/local:$PATH"
    alias kimi="ANTHROPIC_AUTH_TOKEN=<api-key> ANTHROPIC_BASE_URL=https://api.moonshot.cn/anthropic claude"
    
    export PATH="$HOME/.claude/local:$PATH"
    alias bigmodel="ANTHROPIC_BASE_URL=https://open.bigmodel.cn/api/anthropic ANTHROPIC_AUTH_TOKEN=<api-key> claude"
    
    export PATH="$HOME/.claude/local:$PATH"
    alias minimax="ANTHROPIC_BASE_URL=https://api.minimaxi.com/anthropic ANTHROPIC_AUTH_TOKEN=<api-key> claude"
    

    This approach is lightweight and convenient when you only need to switch endpoints or tokens quickly.

    2. Full Configuration via Environment Settings

    This method allows you to configure Claude Code with complete, reusable environments.

    Steps:

    1. Create a settings JSON file for each model
    2. Define aliases to launch Claude Code with those settings

    Create Model Settings Files

    Under the ~/.claude directory, create a models folder to store configuration files for different models.

    bigmodel.json

    {
        "env": {
            "ANTHROPIC_AUTH_TOKEN": "<api-key>",
            "ANTHROPIC_BASE_URL": "https://open.bigmodel.cn/api/anthropic",
            "API_TIMEOUT_MS": "3000000",
            "CLAUDE_CODE_DISABLE_NONESSENTIAL_TRAFFIC": 1
        }
    }
    

    kimi.json

    {
        "env": {
            "ANTHROPIC_BASE_URL": "https://api.moonshot.cn/anthropic",
            "ANTHROPIC_AUTH_TOKEN": "<api-key>",
            "ANTHROPIC_MODEL": "kimi-k2-thinking-turbo",
            "ANTHROPIC_DEFAULT_OPUS_MODEL": "kimi-k2-thinking-turbo",
            "ANTHROPIC_DEFAULT_SONNET_MODEL": "kimi-k2-thinking-turbo",
            "ANTHROPIC_DEFAULT_HAIKU_MODEL": "kimi-k2-thinking-turbo",
            "CLAUDE_CODE_SUBAGENT_MODEL": "kimi-k2-thinking-turbo"
        }
    }
    

    minimax.json

    {
        "env": {
            "ANTHROPIC_BASE_URL": "https://api.minimaxi.com/anthropic",
            "ANTHROPIC_AUTH_TOKEN": "<api-key>",
            "API_TIMEOUT_MS": "3000000",
            "CLAUDE_CODE_DISABLE_NONESSENTIAL_TRAFFIC": 1,
            "ANTHROPIC_MODEL": "MiniMax-M2.1",
            "ANTHROPIC_SMALL_FAST_MODEL": "MiniMax-M2.1",
            "ANTHROPIC_DEFAULT_SONNET_MODEL": "MiniMax-M2.1",
            "ANTHROPIC_DEFAULT_OPUS_MODEL": "MiniMax-M2.1",
            "ANTHROPIC_DEFAULT_HAIKU_MODEL": "MiniMax-M2.1"
        }
    }
    

    Add Aliases to Use the Settings

    Edit ~/.zshrc again: vim ~/.zshrc.

    alias cc-kimi="claude --settings $HOME/.claude/models/kimi.json"
    
    alias cc-bigmodel="claude --settings $HOME/.claude/models/bigmodel.json"
    
    alias cc-minimax="claude --settings $HOME/.claude/models/minimax.json"
    

    This approach is ideal when you need fine-grained control, consistent defaults, or multiple model profiles.

    → 11:33 PM, Dec 23
    Also on Bluesky
  • Before going to the bathroom in the morning, Hamer deliberately ran to the windowsill to check whether it had snowed. Seeing nothing. When we were ready to leave for school and stepped outside, we noticed snow resting on the electric scooter. It turned out the snow had fallen quietly overnight.

    → 8:19 AM, Dec 23
    Also on Bluesky
  • This morning, I tried to do Hamer’s bun hairstyle. At first, I wasn’t sure how to make it work. Then I tried putting on a hair net first, and to my surprise, it worked—though it was a bit loose. I had failed many times before and could never get the hair to stay up.

    → 8:27 AM, Dec 17
    Also on Bluesky
  • The weather was great today, and I made a spontaneous decision to go for a run in the afternoon. I ran along the eastern side of the Second Ring greenway all the way to the Temple of Heaven to meet Xiaoyan and Hamer, who were watching a ballet performance.

    A person wearing glasses and a jacket takes a selfie with a traditional building and several people in the background.
    → 6:27 PM, Dec 14
    Also on Bluesky
  • Beijing saw its first snowfall of the year today. What began as light snow around noon continued through the evening and slowly built up. By nighttime, the city was covered in white, thick enough to make a snowball fight possible.

    → 11:52 PM, Dec 12
    Also on Bluesky
  • Winter’s limited-edition magic: rub back to back, then share a face-to-face kiss — and sparks will fly.

    → 8:25 AM, Dec 12
    Also on Bluesky
  • I’m so glad that I went to the gym, even if it was only for 10 minutes, after spending two hours debugging on the Prism module issue without making any progress.

    → 1:34 PM, Dec 9
    Also on Bluesky
  • Hamer can also sing a little bit of the “ee…” part.

    → 1:18 PM, Dec 8
    Also on Bluesky
  • During these days, I’ve found that ChatGPT feels like my work partner, helping me handle daily tasks, while Claude is more like my personal assistant, helping me reflect on my thoughts about life.

    → 11:59 AM, Dec 6
    Also on Bluesky
  • Spotify 2025 Wrapped, 50,314 minutes listened with BIRDS OF A FEATHER as the top song, Messy as the top Album, Taylor Swift as the top Artist.

    → 9:37 PM, Dec 4
    Also on Bluesky
  • YouTube 2025 RECAP, The Wonder Seeker with Sporty, Tech-savvy, and Entertained.

    → 9:34 PM, Dec 4
    Also on Bluesky
  • Nice catch! I just got the frisbee back from my former teammate, who helped me get it signed two years ago. Time really flies, and I realize how much I miss those frisbee days. 🥏

    → 9:46 PM, Dec 3
    Also on Bluesky
  • Hamer is working so hard to finish her homework.

    → 11:17 PM, Dec 2
    Also on Bluesky
  • Today is really cold. It’s -6, but feels like -9.🥶

    → 8:30 AM, Dec 2
    Also on Bluesky
  • 🍿 We watched Zootopia 2 at the cinema this afternoon. Hamer was free. I loved the “A zoo, ooh, ooh” part of the main song, “Zoo.”

    → 5:53 PM, Nov 30
    Also on Bluesky
  • We upgraded our home network this afternoon using a Fiber to the Room (FTTR) solution, with one master and one salve unit. We are now experiencung better Wi-Fi and smoother AirPlay music streaming.

    → 5:46 PM, Nov 30
    Also on Bluesky
  • The Second Ring Greenway & 北京市级绿道系统规划

    → 12:06 PM, Nov 29
    Also on Bluesky
  • I loved how spontaneous their two-day trip was. Hamer couldn’t go to school, and Xiaoyan had a concert to attend, so they just went for it without thinking too much. They left in the morning, came back the next evening, and were back to their normal routine on the third day. It felt simple, quick, and surprisingly magical.

    → 9:05 AM, Nov 29
    Also on Bluesky
  • Hamer came down with a fever on Sunday, and we were worried she might have caught influenza A from me. Thankfully, it was just indigestion, and she felt better after throwing up.

    Hamer still needs three days of rest, so Xiaoyan plans to take her to Shanghai tomorrow—something Hamer is excited about. When I asked her whether she would still want to go if she weren’t sick and simply took two days off, she said no.

    I worked from home with Hamer today, which I haven’t done in a long time. It took a full morning to adjust, but by the afternoon everything felt back on track.

    → 10:54 PM, Nov 24
  • Down With Influenza A

    After lying in bed for two days and a night because of my illness, I felt truly uncomfortable. It made me think of my uncle, who had been bedridden for months—how did he manage to endure that?

    The timing of my illness was, in a way, fortunate. Early the next morning after I collapsed, Xiaoyan returned from her business trip. Over the past two days, she has taken care of everything at home—cooking, tidying up, and guiding Hamer with her studies and play—which felt very comforting.

    This morning, when I told Hamer I was hungry, she offered to buy breakfast for me. She grabbed her wallet, got dressed, and headed out confidently. At the intersection, she watched the traffic lights carefully before crossing. After buying the food, she kept checking what she was holding—perhaps worried she bought the wrong thing. Watching her walk home with such energy was heartwarming.

    → 10:44 PM, Nov 24
  • During the first night of my illness, Hamer took care of herself and went to bed on her own. The next morning, I found a small note on my bed that said, “I love you, Dad.” I later learned she had quietly left it for me while I was asleep.❤️

    A hand is holding a piece of paper with handwritten Chinese text (I love you, Dad) in purple ink.
    → 9:19 AM, Nov 23
  • Goodbye, CUG.

    A group of soccer players wearing red uniforms pose with medals and a flag in front of a banner.
    → 11:56 PM, Nov 2
    Also on Bluesky
  • Welcome to Wuhan.

    → 7:10 PM, Oct 31
    Also on Bluesky
← Newer Posts Page 5 of 45 Older Posts →
  • RSS
  • JSON Feed
  • Lucky
  • Archive
  • About