The hard part of adopting an AI coding agent is rarely the first prompt; it is building a terminal setup you can reuse inside a real repository without mixing credentials, project rules, and task context.
This guide sets up Claude Code CLI with Ace Data Cloud, then uses it for focused terminal work: explaining code, reviewing a diff, and following repository instructions stored in CLAUDE.md.
What this setup gives you
Claude Code can run interactively in a project directory, execute one task and exit, consume piped input, or continue an earlier conversation. The Ace Data Cloud configuration needs two values:
-
ANTHROPIC_AUTH_TOKEN: your API token. Claude Code adds theBearerprefix when sending it. -
ANTHROPIC_BASE_URL:https://api.acedata.cloud.
You can define them in your shell profile or isolate them in Claude Code's settings. I prefer the second option on shared development machines because the variables remain scoped to one tool.
1. Install Claude Code
On macOS, Linux, or WSL, use the native installer:
curl -fsSL https://claude.ai/install.sh | bash
Homebrew is also supported:
brew install claude-code
On Windows, use WinGet:
winget install Claude.ClaudeCode
Open a fresh terminal and verify the command:
claude --help
If you see command not found, reopen the terminal and check $PATH before reinstalling.
2. Configure the API safely
Copy your API token from the Ace Data Cloud console. Do not put it in source control, CLAUDE.md, or a command that will remain in shell history.
For a persistent shell-level configuration, add this to ~/.zshrc, ~/.bashrc, or ~/.bash_profile:
export ANTHROPIC_AUTH_TOKEN="{token}"
export ANTHROPIC_BASE_URL="https://api.acedata.cloud"
Reload the relevant profile:
source ~/.zshrc # use ~/.bashrc for Bash
To scope the variables to Claude Code, create or edit ~/.claude/settings.json instead:
{
"env": {
"ANTHROPIC_AUTH_TOKEN": "{token}",
"ANTHROPIC_BASE_URL": "https://api.acedata.cloud"
}
}
In both examples, replace {token} locally. The useful boundary is simple: user-level settings hold credentials; repository files describe the project.
Now enter a repository and start an interactive session:
cd /path/to/your/project
claude
Begin with a modest request such as: explain the request flow from the HTTP handler to the database. This checks the agent's understanding before you ask it to modify files.
3. Use one-shot commands for bounded work
Interactive mode is useful for exploration, but one-shot commands are easier to audit. Run a query and exit with -p:
claude -p "explain this function"
Claude Code also accepts piped input. To review only the current diff:
git diff main | claude -p "review these changes"
Ask for concrete findings—correctness risks, missing tests, or unclear error handling—rather than a vague quality score. Then inspect the response yourself. The pipe narrows the supplied context, but it does not turn the model's judgment into a merge decision.
For ongoing work, claude -c continues the latest conversation in the current directory, while claude -r restores a previous one. In interactive mode, /compact compresses context and /clear starts over. These controls help when an old assumption begins influencing a new task.
4. Add project memory with CLAUDE.md
Create CLAUDE.md in the repository root to store instructions Claude Code should load at startup:
# Project
Django API with a Vue.js frontend.
## Working rules
- Use Python 3.12.
- Follow PEP 8.
- Add unit tests for API behavior changes.
- Do not edit generated migration files by hand.
Keep this file short and operational. It is not a place for secrets or a full architecture handbook. Commit it only when the instructions should apply to everyone working in the repository.
A practical builder loop
My preferred loop is: enter the repository, ask Claude Code to explain the relevant path, use one bounded prompt to make or review a change, run the project's tests, and inspect git diff before committing. The agent accelerates the middle of the loop; it does not replace the boundaries around it.
The Claude Code Terminal CLI integration guide contains the complete command and environment-variable reference. The setup is intentionally small: two environment variables, one project-memory file, and terminal commands you can inspect as you go.

Top comments (0)