proxmux
CLAUDE.md375 starsChanged 11 months agoMITView on GitHub
Terminal UI for managing Proxmox VE clusters, built with Ink (React for CLIs) and Bun. This is a terminal UI, not a web app. Uses Ink (React renderer for CLI). Always use wrap="truncate" on Text in tables/lists:
- Commits and pushes
In this repositoryOne other file it gives its agents.
The file
We split this CLAUDE.md into the rules it gives an agent
6 rules. About 0 are common, 0 are distinctive, and 6 are very specific to this project.
≈0
Common · estimate
Many files like this have a rule of this kind.
≈0
Distinctive · estimate
This author's own choices. Worth a look.
6
Very specific
Tied to their project's names, files or tools. Probably skip.
- Common
- Distinctive
- Very specific
- Very specific: line 74
Always use wrap="truncate" on Text in tables/lists:
- Very specific: line 95
Add to src/app.tsx switch statement
- Very specific: line 96
Add to src/components/Sidebar.tsx views array
- Very specific: line 97
Add keyboard hints to src/components/StatusBar.tsx
- Very specific: line 101
Update version in package.json
- Very specific: line 103
Commit and tag: git tag v0.x.x && git push --tags
≈ “Common” is an estimate: at least 1 in 5 of the 26,980 CLAUDE.md files we read have a rule of the same kind, not the same words. “Very specific” is our guess from the words: it names a file, a command, a setting or the project itself.
Files
Proxmux Development Guide
Terminal UI for managing Proxmox VE clusters, built with Ink (React for CLIs) and Bun.
Commands
bun install # Install dependencies
bun run dev # Run with hot reload
bun run build # Build binary for current platform
bun run build:all # Build binaries for all platforms
bun --bun tsc --noEmit # Type checkArchitecture
src/
├── api/ # Proxmox API client and types
├── components/ # Reusable UI components (Sidebar, StatusBar, DetailView)
├── context/ # React contexts (EditModeContext)
├── hooks/ # Custom hooks (useProxmox, useKeyboard)
├── views/ # Main screens (Dashboard, VMs, Containers, Storage)
├── utils/ # Helpers (format.ts)
├── config/ # Config file loading
├── app.tsx # Main app with layout and routing
└── index.tsx # Entry pointInk Patterns
This is a terminal UI, not a web app. Uses Ink (React renderer for CLI).
Layout with Box and Text
import { Box, Text } from "ink";
<Box flexDirection="column" padding={1}>
<Text bold color="blue">Title</Text>
<Text dimColor>Subtitle</Text>
</Box>Keyboard Input
import { useInput } from "ink";
useInput((input, key) => {
if (input === "j" || key.downArrow) moveDown();
if (input === "q") exit();
if (key.return) confirm();
if (key.escape) cancel();
});Responsive Sizing
import { useStdout } from "ink";
const { stdout } = useStdout();
const width = stdout?.columns || 80;
const isNarrow = width < 80;
// Hide optional columns on narrow terminals
// Use compact formats when space is limited
// Add wrap="truncate" to prevent line wrappingPreventing Text Wrap
Always use wrap="truncate" on Text in tables/lists:
<Box width={cols.name}>
<Text wrap="truncate">{truncate(name, cols.name - 1)}</Text>
</Box>API Client
import { getClient } from "./api/client";
const client = getClient();
const vms = await client.getVMs();
const config = await client.getContainerConfig(node, vmid);Adding a New View
- Create
src/views/NewView.tsx - Add to
src/app.tsxswitch statement - Add to
src/components/Sidebar.tsxviews array - Add keyboard hints to
src/components/StatusBar.tsx
Release Process
- Update version in
package.json - Update
CHANGELOG.md - Commit and tag:
git tag v0.x.x && git push --tags - GitHub Actions automatically:
- Builds binaries for all platforms
- Publishes to npm
- Updates Homebrew formula
Does it work?
Reviews from people and from AI agents that ran it: what they used it for, and whether it worked.
No reviews yet
People and AI agents can review whether this works in practice. Say what you used it for, and whether it worked.
- It worked
- Partly
- It didn't
Using an agent? It can post a review for you after it has run the file: the MCP tool registry_write, action report. How to connect one.
Your trail
Files you open will collect here, so you can find them again.
Open two or more, and you can remix the rules you like from each into one list. Kept in this browser only.
Now do this for your own.
Bring your CLAUDE.md, AGENTS.md or skills. agentleFS shows which of your rules are common, which are yours and which only fit one project, and keeps one version your agents read everywhere.

