Build a Task Tracker Using Claude Code
Use Claude Code to build a CLI task tracker without writing code yourself.
Introduction
30 Second Summary
Imagine having a coding partner who can write, test, and debug entire applications while you focus on directing the work. That's what agentic coding tools let you do.
In this project, you will use Claude Code to build a command-line task tracker from scratch. You won't write the code yourself. Instead, you'll learn how to communicate effectively with an AI coding agent to plan features, write tests, and ship working software.
What You'll Build
A Node.js CLI application that manages tasks from the terminal, built entirely by directing Claude Code through an interactive session.
By the end of this project, you'll have:
- A working command-line task tracker that can add, list, complete, and delete tasks.
- A CLAUDE.md file that gives Claude persistent project instructions every time you start a session.
- A test suite that Claude wrote, ran, and fixed iteratively.
- A Git commit history showing Claude's work, with descriptive commit messages.
- Secret Mission: Set up a custom Hook that automatically runs your tests after every code change Claude makes.
Are there any prerequisites?
You need an active Claude Pro, Max, Team, or Enterprise subscription. Claude Code is not available on the free plan.
You should also have basic familiarity with using the terminal (navigating directories and running commands). No prior coding experience with Node.js is required.
Before We Start
Before We Start...
Install Claude Code
Claude Code is Anthropic's agentic coding tool that lives in your terminal. Instead of copy-pasting between a chat window and your code editor, Claude Code works directly with your files, runs commands, and builds features alongside you.
In this step, you'll install Claude Code and connect it to your Claude subscription account. Once authenticated, Claude Code can start building code for you in any project directory.
Do I need a paid subscription?
Yes. Claude Code requires a Claude Pro ($20/month), Max ($100/month+), Team, or Enterprise subscription. The free Claude plan does not include Claude Code access.
In this step, get ready to:
- Install Claude Code on your machine.
- Authenticate with your Claude subscription.
- Verify everything is working with claude doctor.
Install Claude Code from your terminal
- Press Cmd+Space (macOS) or the Windows key (Windows) to open your search bar.
- Type Terminal and press Enter to open it.
- Install Claude Code by running this command:
curl -fsSL https://claude.ai/install.sh | bash
What does this command do?
This command downloads the Claude Code installer script from Anthropic's servers and runs it immediately. The curl tool fetches the script, and piping it to bash executes it. The installer adds the claude command to your system PATH so you can run it from any directory.
Prefer Homebrew?
If you have Homebrew installed, you can alternatively run brew install --cask claude-code to install Claude Code.
- Confirm the installation worked by running:
claude --version
✔️ I see a version number
Claude Code is installed and ready to go. Move on to the next substep.
ⓧ Command not found
Your terminal session hasn't picked up the new PATH entry yet. Try these fixes:
- Close your Terminal window completely, then reopen it and run claude --version again.
- If that doesn't work, run the install command again and watch for any error messages in the output.
If you're still stuck, help me troubleshoot my Claude Code installation.
Authenticate with your Claude account
Now that Claude Code is installed, you need to connect it to your Claude subscription. The first time you run Claude Code, it opens a browser window for you to log in.
- Start Claude Code for the first time by running:
claude
What happens next?
Claude Code opens a browser window pointing to claude.ai. Sign in with the same account that has your Pro or Max subscription. After you authorize, the browser redirects back and Claude Code is authenticated.
If the browser doesn't open automatically, press c in your terminal to copy the login URL to your clipboard. Paste it into your browser manually.
- Complete the sign-in flow in your browser.
- Return to your terminal after authenticating. You should see Claude Code's interactive prompt ready for input.
- Type exit or press Ctrl+D to close this session for now.
Browser didn't open or login looped?
- Make sure you're signing in with an account that has a Pro, Max, Team, or Enterprise subscription. Free accounts cannot use Claude Code.
- If your browser shows a login code instead of redirecting back, paste that code into the terminal where it says "Paste code here if prompted."
Still having trouble? Help me fix my Claude Code authentication.
Confirm your setup with claude doctor
Claude Code includes a built-in diagnostic command that checks your installation, authentication, and system configuration all at once.
- Run the diagnostic check by running:
claude doctor
- Confirm that all checks pass. You should see each diagnostic item marked as successful.
Seeing failed checks?
- If authentication fails, run claude again and complete the browser login flow from the previous substep.
- If a system check fails, read the error message carefully. It usually tells you exactly what to fix.
Need a hand? Help me interpret my claude doctor output.
Your environment is ready. Next up, you'll create a project and start your first real conversation with Claude Code.
Set Up Your Project and Start a Session
Claude Code is installed and ready to go. Now it's time to put it to work on a real project.
In this step, you'll create a fresh project directory, initialize it with Git and npm, and then start your first Claude Code session. You'll explore how to talk to Claude, learn the key commands, and give it its first real task.
In this step, get ready to:
- Create and initialize a project directory with Git and npm.
- Start a Claude Code session and explore its commands.
- Have Claude scaffold the initial project structure.
Create your project directory and start a session
Before you create the project, you need two tools available: Node.js (version 18 or higher) and Git. The task tracker will use Node.js to run, and Git will track Claude's changes.
- Check your Node.js version by running this command:
node --version
✔️ I see version 18 or higher
Your Node.js version is ready. Move on to the Git check below.
ⓧ I see an older version
You need Node.js 18+ for this project because we'll use the built-in test runner (node --test).
- Go to nodejs.org/en/download and download the latest LTS installer for macOS.
- Run the .pkg installer and follow the on-screen prompts.
- Close and reopen your Terminal, then run node --version again to confirm it shows 18 or higher.
ⓧ Command not found
Node.js is not installed yet.
- Go to nodejs.org/en/download and download the LTS installer for macOS.
- Run the .pkg installer and follow the on-screen prompts.
- Close and reopen your Terminal, then run node --version to confirm it shows a version number.
- Check your Git version by running this command:
git --version
✔️ I see a version number
Git is ready. Let's create your project.
ⓧ Command not found
Git is not installed yet. The easiest way on macOS is to install the Xcode Command Line Tools.
- Install Git by running this command:
xcode-select --install
- A dialog will appear asking you to confirm the installation. Click **Install** and wait for it to complete.
- Once finished, run git --version again to confirm it shows a version number.
- Move to your Desktop by running this command:
cd ~/Desktop
- Create your project folder and move into it by running these commands:
mkdir task-tracker
cd task-tracker
- Initialize Git and npm inside your new folder by running these commands:
git init
npm init -y
You should see Git confirm the repository was initialized, and npm prints out a new package.json file with default project metadata.
What did these commands do?
- git init creates a new Git repository in the current folder. This lets Claude Code (and you) track changes with commits.
- npm init -y creates a package.json file that describes your Node.js project. The -y flag accepts all the defaults so you don't have to answer prompts.
- Start a Claude Code session by running:
claude
Claude Code starts up and reads your project directory. You're now inside an interactive session where you can type prompts and commands.
Seeing an authentication error?
If Claude asks you to log in again, follow the browser authentication flow just like you did in Step 1. Make sure you're using a Pro, Max, Team, or Enterprise account.
help me fix a Claude Code authentication error
Explore Claude Code's commands and modes
Before you give Claude real work, take a moment to learn what it can do. Claude Code has built-in slash commands and different ways to approach problems.
- Type this into your Claude Code session to see all available commands:
/help
You should see a list of slash commands, including /clear (clear conversation history), /model (switch models), and others.
What are the key things to know?
- Plan mode: You can ask Claude to "plan first, then implement" to separate thinking from coding. This prevents Claude from jumping straight into code that solves the wrong problem.
- Slash commands: /help shows commands, /clear resets context, and /model switches the AI model.
- Exiting: Type exit or press Ctrl+D to end a session.
- Permissions: Claude asks permission before changing files or running commands. You'll see this in action shortly.
Why plan before coding?
Letting Claude jump straight to coding can produce code that solves the wrong problem. Asking Claude to plan first separates exploration from execution. You'll see its thinking before it touches any files.
Give Claude its first task
Now that you know the basics, it's time to put Claude to work. You'll ask it to create the initial file structure for your task tracker.
- Type this prompt into your Claude Code session:
Set up the project structure for a Node.js CLI task tracker. Create an index.js for CLI argument parsing, a tasks.js for core task logic (add, list, complete, delete), and a storage.js for JSON file read/write operations. Use ES modules (import/export). Just create the files with placeholder structure for now.
What should I see?
Claude will outline what it plans to create, then ask for your permission before making any changes. This is the default permission model in action. Accept the changes when prompted.
After you approve, Claude creates the files. You should see it report creating index.js, tasks.js, and storage.js with placeholder code inside each one.
- Confirm the files were created by running this in your Claude Code session:
List the files you just created and briefly explain what each one does.
Claude should summarize the project structure: index.js handles CLI argument parsing, tasks.js contains core task logic, and storage.js manages reading and writing to a JSON file.
Claude's output will vary
Since Claude is an AI, the exact code and structure it creates may differ slightly from what's shown here. That's expected. The important thing is that you have the three core files created with a sensible structure.
Your project is set up and Claude has created the initial scaffolding. Next up, you'll create a CLAUDE.md file that gives Claude persistent instructions about how your project should work.
Create a CLAUDE.md for Project Instructions
In the previous step, you saw Claude Code create files and set up your project structure. That's impressive for a first interaction, but Claude started each task from scratch with no memory of your preferences.
Claude Code reads a file called CLAUDE.md at the start of every session. This file gives Claude persistent instructions about your project. In this step, you'll write one so Claude knows your tech stack, coding style, and how to run tests before you even ask it to do anything.
In this step, get ready to:
- Create a CLAUDE.md file with project instructions.
- Verify Claude reads your instructions at session start.
- Have Claude implement core features using plan mode.
Exit your session and create CLAUDE.md
Right now, Claude Code has no long-term memory of what your project is about. Every new session starts blank. A CLAUDE.md file solves this by giving Claude instructions it loads automatically at the start of every conversation.
- Exit your current Claude Code session by pressing Ctrl+D or typing exit.
- Create a new file called CLAUDE.md in the root of your task-tracker folder by running this command:
touch CLAUDE.md
- Open CLAUDE.md in your code editor and paste the following content:
# Task Tracker CLI
## Project Overview
This is a command-line task tracker built with Node.js. It allows users to add, list, complete, and delete tasks from the terminal.
## Tech Stack
- Node.js (no external dependencies for core functionality)
- JSON file storage (tasks.json)
- Node.js built-in test runner for testing
## Project Structure
- `index.js` - Entry point and CLI argument parsing
- `tasks.js` - Core task logic (add, list, complete, delete)
- `storage.js` - JSON file read/write operations
- `tasks.json` - Data file (created automatically)
- `test/` - Test directory
## Coding Style
- Use ES modules (import/export)
- Keep functions small and focused
- Add JSDoc comments to exported functions
- Handle errors gracefully with user-friendly messages
## Commands
- `node index.js add "task description"` - Add a new task
- `node index.js list` - List all tasks
- `node index.js complete <id>` - Mark a task as complete
- `node index.js delete <id>` - Delete a task
## Testing
- Run tests with: `node --test`
- Tests live in the `test/` directory
- Each core function should have at least one test
What does this file do?
Each section of your CLAUDE.md teaches Claude something specific about the project:
- Project Overview tells Claude what it's building so it makes relevant decisions.
- Tech Stack prevents Claude from pulling in unnecessary dependencies.
- Coding Style ensures Claude writes ES modules with JSDoc comments instead of guessing your preference.
- Testing tells Claude exactly how to run and structure tests using Node's built-in test runner.
- Save CLAUDE.md.
- Confirm the file exists by running:
ls CLAUDE.md
You should see CLAUDE.md in the output.
File not showing up?
- Make sure you're in the task-tracker directory. Run pwd to check your current location.
- Check that you saved the file after pasting the content.
Help me find my CLAUDE.md file in the task-tracker directory.
✔️ Awesome, I've got everything!
Great. Double check you've saved the file and let's move on.
ⓧ I'd like to double check the full code
Here's the complete CLAUDE.md file:
# Task Tracker CLI
## Project Overview
This is a command-line task tracker built with Node.js. It allows users to add, list, complete, and delete tasks from the terminal.
## Tech Stack
- Node.js (no external dependencies for core functionality)
- JSON file storage (tasks.json)
- Node.js built-in test runner for testing
## Project Structure
- `index.js` - Entry point and CLI argument parsing
- `tasks.js` - Core task logic (add, list, complete, delete)
- `storage.js` - JSON file read/write operations
- `tasks.json` - Data file (created automatically)
- `test/` - Test directory
## Coding Style
- Use ES modules (import/export)
- Keep functions small and focused
- Add JSDoc comments to exported functions
- Handle errors gracefully with user-friendly messages
## Commands
- `node index.js add "task description"` - Add a new task
- `node index.js list` - List all tasks
- `node index.js complete <id>` - Mark a task as complete
- `node index.js delete <id>` - Delete a task
## Testing
- Run tests with: `node --test`
- Tests live in the `test/` directory
- Each core function should have at least one test
Start a new session and verify Claude reads your instructions
Now you'll see the power of CLAUDE.md in action. When you start a new Claude Code session, Claude automatically loads this file into its context.
- Start a new Claude Code session by running:
claude
What happens at startup?
Claude Code walks up the directory tree from your current folder, looking for CLAUDE.md files. It loads them into the context window at the start of every session. The more specific and concise your instructions are, the more consistently Claude follows them.
- Ask Claude to describe the project based on what it just read. Type this prompt:
Describe this project based on your instructions. What tech stack are we using, and what coding style should you follow?
Claude should respond with details from your CLAUDE.md: Node.js, JSON file storage, ES modules, JSDoc comments, and the built-in test runner. This confirms Claude loaded your instructions successfully.
Claude doesn't mention your instructions?
- Make sure CLAUDE.md is in the root of your task-tracker folder, not inside a subfolder.
- Confirm you started the session from inside the task-tracker directory. Claude reads CLAUDE.md from the working directory.
- Try exiting and restarting the session. Claude only reads the file at session start.
Help me figure out why Claude Code isn't reading my CLAUDE.md file.
Implement core features using plan mode
Now for the exciting part. You'll ask Claude to build the entire task tracker, but with an important twist: you'll tell it to plan first. This separates thinking from doing, which produces better code.
- Ask Claude to implement the core features. Type this prompt:
Plan first, then implement: Build the core task tracker features. I need add, list, complete, and delete commands working in index.js, with task logic in tasks.js and file storage in storage.js. Follow the instructions in CLAUDE.md.
What is plan mode?
When you ask Claude to "plan first," it outlines its approach before writing any code. This helps you catch misunderstandings early instead of after Claude has written hundreds of lines in the wrong direction.
Anthropic's best practice recommendation: "Letting Claude jump straight to coding can produce code that solves the wrong problem. Use plan mode to separate exploration from execution."
- Read through Claude's plan. It should outline how it will structure the three files and what each function does.
- Approve the plan when Claude asks for permission to proceed. Claude will then create or update index.js, tasks.js, and storage.js with working implementation code.
What should I see Claude doing?
Watch Claude's process. It will ask permission before editing each file. You'll see it read existing files, plan changes, then write the implementation. This is the permission model in action. Claude defaults to cautious behavior, asking before changing files or running commands.
Claude may also update your package.json to add "type": "module" for ES modules support. Allow this change.
- Once Claude finishes, test the task tracker by running these commands in your Claude Code session:
Run: node index.js add "Buy groceries"
You can also type the command directly into your terminal. Either way, you should see a confirmation message that the task was added.
- Test the list command to confirm it shows your task:
Run: node index.js list
You should see your "Buy groceries" task listed with an ID and a status showing it's incomplete.
Getting an error when running commands?
- If you see Cannot use import statement outside a module, ask Claude to add "type": "module" to package.json.
- If a file is missing, ask Claude to check the project structure against CLAUDE.md and create any missing files.
- If the command doesn't recognize an argument, ask Claude to review the CLI parsing in index.js.
Help me debug my task tracker CLI that's throwing an error.
Your task tracker is alive. Claude read your instructions, planned its approach, and built the whole thing. Next, you'll have Claude write tests to make sure everything keeps working as you add features.
Have Claude Write and Run Tests
Your task tracker has working code, but no safety net. Tests catch bugs when you change code later, and they also prove your features work as expected.
In this step, you'll ask Claude Code to write a full test suite, watch it iterate through failures until everything passes, and learn how to manage your session's context window.
In this step, get ready to:
- Have Claude write tests for all task operations.
- Observe the agentic loop as Claude fixes failures.
- Learn context management with /clear and claude -c.
Ask Claude to write tests with a specific prompt
Vague prompts produce vague results. Telling Claude to "write some tests" leaves too much to interpretation. A specific prompt that names the operations and tells Claude to run and fix them gives it a clear goal.
- In your active Claude Code session, type the following prompt and press Enter:
Write tests for all task operations: adding, listing, completing, and deleting tasks. Run them and fix any failures.
Why be this specific?
This prompt does three things at once. It names exactly which operations to test (add, list, complete, delete). It tells Claude to run the tests after writing them. It tells Claude to fix any failures it finds.
Claude will reference your CLAUDE.md to know that tests belong in the test/ directory and should run with node --test.
- Claude will ask permission before creating files in the test/ directory. Allow it to proceed.
Granting permissions
Claude Code asks before creating or modifying files. You can approve each action individually, or type "yes" to allow the current batch. This cautious behavior protects your project from unexpected changes.
Watch the agentic loop in action
This is where Claude Code differs from a regular chatbot. Instead of just generating text and stopping, Claude enters an iterative loop: write code, run it, observe the result, and fix problems.
- Watch your terminal as Claude works. You'll see it cycle through these steps:
- Claude writes test files in the test/ directory.
- Claude runs node --test to execute them.
- If any tests fail, Claude reads the error output, identifies the issue, and edits the code.
- Claude reruns the tests until all of them pass.
What is the agentic loop?
The agentic loop is what makes Claude Code an agent rather than a chatbot. A chatbot generates one response and waits. An agent takes action, observes the outcome, and keeps going until the task is done.
You might see Claude fix the application code, the test code, or both. This is normal. The goal is passing tests, and Claude will adjust whatever is needed to get there.
- Wait for Claude to finish iterating. You'll know it's done when Claude reports that all tests pass.
- Confirm the tests pass yourself by checking the output Claude shows. You should see a summary with all tests passing and zero failures.
Claude seems stuck or tests keep failing?
If Claude appears to loop without making progress, you can interrupt it by pressing Esc and giving it a more specific direction like "Focus on fixing the import paths in the test file."
If tests fail because of a missing tasks.json file, ask Claude to make the tests create and clean up their own test data file.
Help me understand why Claude's tests keep failing
Manage your session context
Every message you send and every file Claude reads fills up the context window. Over time, this can make Claude slower or cause it to forget earlier details. Two tools help you manage this.
- Reset the context window by typing this command in your Claude Code session:
/clear
What does /clear do?
The /clear command clears the conversation history and starts a fresh session. Your previous conversation is preserved and can be resumed later. Claude still has access to all your project files and CLAUDE.md because those are read at the start of every new session.
- Now exit Claude Code by typing exit and pressing Enter.
- Continue your most recent conversation by running this command in your terminal:
claude -c
What is the difference between /clear and claude -c?
They serve opposite purposes. /clear wipes the conversation to start fresh. claude -c loads the most recent conversation in your current directory so you can pick up where you left off.
Together, they give you control over how much context Claude carries. Use /clear when the session feels bloated. Use claude -c when you want to resume after stepping away.
- Verify Claude still knows your project by asking it to add one more edge case test. Type this prompt:
Add an edge case test that verifies what happens when you try to complete a task that doesn't exist. Run it to make sure it passes.
- Allow Claude to create or modify test files when it asks for permission.
- Wait for Claude to write the test, run it, and confirm it passes.
You should see Claude write a new test, run node --test, and report that all tests (including the new edge case) pass.
Claude doesn't remember the project?
Make sure you ran claude -c from inside the task-tracker directory. The -c flag continues the most recent conversation in the current directory. If you're in a different folder, it won't find your session.
Help me get Claude to recognize my project after using /clear
Your task tracker now has a complete test suite that proves every feature works. Next up, you'll use Claude's Git integration to commit all this work and generate documentation.
Use Git Integration and Wrap Up
Your task tracker has passing tests and a solid codebase. The last step of any real project is committing your work and writing documentation so others (including future you) can understand and use what you built.
Claude Code works directly with Git. It can stage changes, write commit messages, and even draft documentation by referencing your actual code. In this step, you'll ask Claude to wrap up the project like a professional developer would.
In this step, get ready to:
- Have Claude commit all your project files with a descriptive message.
- Have Claude write a README.md based on the actual codebase.
- Exit Claude Code and verify the task tracker works on your own.
Ask Claude to commit your work
Every professional project needs version control. Instead of running Git commands yourself, you can ask Claude to handle the entire commit workflow.
- In your Claude Code session, type this prompt and press Enter:
Commit all the project files with a descriptive commit message that summarizes what this project does and what was built.
What happens next?
Claude will ask your permission to run Git commands. When prompted, allow it to proceed. You'll see Claude run git add to stage the files, then git commit with a message it writes based on the project content.
The commit message Claude generates references what the code actually does. This is a practical example of how Claude uses context from your files to produce accurate output.
- Allow Claude to execute the Git commands when it asks for permission.
- Read the commit message Claude wrote. It should mention the task tracker, its features, and the tech stack.
Claude says it can't commit?
If Claude reports that there's nothing to commit or the working tree is clean, your repo may already have a commit from an earlier action. Ask Claude: "Run git log --oneline to show me the commit history." If you see commits already exist, you're all set.
If Claude says Git isn't initialized, ask it to run git init first, then try the commit again.
help me commit my project files with Claude Code
Have Claude write a README
Good documentation makes a project usable. Claude can write a README that accurately reflects your codebase because it can read your actual source files.
- Type this prompt into your Claude Code session:
Add a README.md that explains how to install and use the task tracker. Include all the available commands with examples.
What does Claude do here?
Claude reads your existing files (index.js, CLAUDE.md, package.json) to understand your CLI commands and their syntax. It then writes a README that matches the actual behavior of your code.
This is one of the strongest use cases for agentic coding tools. The documentation stays accurate because Claude generates it from the source of truth.
- Allow Claude to create the README.md file when it asks for permission.
- Ask Claude to also commit the new README by typing:
Commit the README.md with an appropriate commit message.
- Allow the Git commands when prompted.
README doesn't match your commands?
If Claude writes a README with commands that don't match your CLAUDE.md, ask it to re-read the file: "Check CLAUDE.md and make sure the README commands match exactly." Claude will correct any discrepancies.
help me get Claude to write accurate documentation for my project
Exit the session and take it for a spin
Time to step out of Claude Code and verify that everything works independently. This confirms the project stands on its own.
- Exit your Claude Code session by typing exit and pressing Enter (or press Ctrl+D).
What is Ctrl+D?
Ctrl+D sends an "end of input" signal to the terminal. Many interactive CLI tools (including Claude Code) interpret this as a request to close the session. It's the keyboard shortcut equivalent of typing exit.
Now open your project in a code editor to see everything Claude built.
- Press Cmd+Space (macOS) or the Windows key (Windows) to open your search bar.
- Type the name of your code editor (e.g. VS Code or Cursor) and press Enter to open it.
- Open the task-tracker folder in your editor.
- Browse through index.js, tasks.js, storage.js, and the test/ directory. Notice how Claude organized the code following the instructions in your CLAUDE.md.
Finally, run the task tracker yourself to confirm it works.
- Return to your terminal and make sure you're inside the task-tracker directory.
- Try adding a task by running:
node index.js add "Build something awesome with Claude Code"
- List your tasks by running:
node index.js list
You should see your task listed with an ID and a status showing it's not yet complete.
- Check the git history by running:
git log --oneline
You should see the commit(s) Claude made, each with a descriptive message.
Task tracker not working?
If you see a "module not found" or "cannot use import" error, check that your package.json contains "type": "module". This is required for ES module import/export syntax to work in Node.js.
If you see a different error, start a quick Claude Code session with claude and paste the error message. Claude can diagnose and fix the issue.
help me debug my task tracker CLI
Secret mission
Set Up a Test Hook
Your task tracker works, your tests pass, and Claude committed everything. But what if Claude accidentally breaks something while adding a new feature? Set up a Claude Code Hook that automatically runs your test suite after every code change Claude makes. This ensures Claude never ships a bug without immediately knowing about it.
Clean Up Your Resources
Clean Up Your Resources
This project uses a Claude Pro or Max subscription which is billed monthly. No additional cloud resources were created. Decide whether to keep your resources running, pause them to come back later, or delete them entirely.
Cost warning
Your Claude Pro ($20/month) or Max ($100/month+) subscription continues billing regardless of whether you use Claude Code. If you only subscribed for this project, consider canceling to avoid the next charge.
Resources you used:
- Claude Pro or Max subscription (monthly billing).
- Local task-tracker project folder on your Desktop.
- Claude Code CLI installed on your machine.
- Claude Code configuration files (~/.claude and ~/.claude.json).
Keep everything running
No action needed. Choose this if you plan to keep using Claude Code on this project or your own projects.
- Your task-tracker folder stays on your Desktop ready for future work.
- Claude Code stays installed and ready to use in any project directory.
- Your Claude subscription continues as normal.
Pause - I'll come back to this later
Your subscription continues but no additional costs accrue from this project. There are no running processes or cloud resources to shut down.
- Your task-tracker folder stays on your Desktop.
- Claude Code stays installed. You can start a new session anytime by running claude inside the project folder.
- Your subscription keeps billing monthly. No extra charges come from this project specifically.
Delete - I don't want to use this again
Remove all project resources and start fresh. Follow each step below for the items you want to remove.
Delete the project folder
- Remove the task-tracker folder by running this command:
cd ~/Desktop
rm -rf task-tracker
Uninstall Claude Code
The uninstall command depends on how you installed Claude Code.
Native installer
- Remove the Claude Code binary and data files by running:
rm -f ~/.local/bin/claude
rm -rf ~/.local/share/claude
- Remove Claude Code configuration files by running:
rm -rf ~/.claude
rm ~/.claude.json
Homebrew
- Uninstall the Homebrew cask by running:
brew uninstall --cask claude-code
- Remove Claude Code configuration files by running:
rm -rf ~/.claude
rm ~/.claude.json
Cancel your Claude subscription
If you only subscribed for this project, you can cancel your Claude Pro or Max plan from your account settings.
- Go to claude.ai and log in.
- Click your initials or name in the lower left corner.
- Select Settings from the menu.
- Navigate to Billing.
- Click the Cancel button.
When does cancellation take effect?
Your cancellation takes effect at the end of your current billing period. You can continue using your paid plan until then.
To avoid being charged for the next period, cancel at least 24 hours before your next billing date.
That's a Wrap!
That's a Wrap!
You just learned to drive an agentic coding tool by actually shipping something with it. You now have a fully functional CLI task tracker, a test suite, and a git history to prove it.
You've learned how to:
- Direct Claude Code to build a complete Node.js CLI application from scratch using specific, context-rich prompts and plan mode to separate thinking from implementation.
- Create a CLAUDE.md file to give Claude persistent project instructions that it reads at the start of every session.
- Watch the agentic loop in action as Claude wrote tests, ran them, fixed failures iteratively, and committed work with descriptive Git messages.
- Set up a Hook to automatically run your test suite after every code change Claude makes, catching bugs before they slip through.
Ready to quiz yourself?