p

Contribute to CozyCLI

Help me improve CozyCLI by contributing new practice tasks or fixing existing ones. Everything lives in a simple JSON file in the GitHub repo.

How to add tasks

  1. Fork the repo on GitHub.
  2. Edit questions.json and append your tasks at the end of the array.
  3. Keep the same structure (see template below). Use concrete filenames in desc.
  4. Run a JSON linter locally (optional) and ensure IDs are unique.
  5. Commit & open a Pull Request. I will review and merge.

Task template (copy & edit)

{
  "id": 151,
  "desc": "Show the first 3 lines of 'notes.txt'",
  "cmd": "head -n 3 notes.txt",
  "difficulty": "easy",
  "explanation": "Displays only the first three lines.",
  "category": "Text Viewing",
  "tags": ["head", "preview"],
  "resource": { "title": "head man page", "url": "https://man7.org/linux/man-pages/man1/head.1.html" },
  "distros": ["core"]
}
        

Allowed difficulty: easy | medium | hard. Use short, practical explanations (1–3 sentences).

Style guidelines

  • Real, working Linux commands (Core or Debian/Ubuntu).
  • Include a concrete filename in desc if needed (e.g., notes.txt).
  • Provide a manpage link in resource if possible.
  • 🚫 Avoid destructive commands (e.g., rm -rf /), sudo-required actions, or distro-specific tools unless tagged.
  • 💡 Prefer clear, beginner-friendly tasks over niche tricks.

Categories & distros

Use existing categories when possible (Filesystem, Text Viewing, Text Processing, System Info, Networking, Archiving/Compression, Shell Features, Permissions, Search, Editors). For distros, default to ["core"]. Debian/Ubuntu tasks can use ["debian","ubuntu"].

Need help?

Open an issue with your idea or question. I am happy to help refine tasks before a PR.

© CozyCLI