clod-0.2.0: clod.cabal
cabal-version: 2.4
name: clod
version: 0.2.0
synopsis: Project file manager for Claude AI integrations
description: Clod (Claude Loader) is a utility for preparing and uploading files to Claude AI's
Project Knowledge feature. It tracks file changes, respects .gitignore and .clodignore
patterns, and optimizes filenames for Claude's UI.
.
Key features:
.
* Process all files on first run, only modified files on subsequent runs
* Respect .gitignore and .clodignore patterns
* Handle binary vs. text files automatically
* Use system temporary directories for staging files
* Create optimized filenames for Claude's UI
* Generate a path manifest for mapping optimized names back to original paths
* Color-coded, user-friendly terminal interface
* Capability-based security model
* Path-restricted file access to prevent unauthorized operations
.
Clod is particularly useful for reducing AI development costs while working with
Claude. By handling file selection, staging, and tracking efficiently, it can cut
API costs by 50% or more. This makes powerful AI tools accessible to students,
bootstrappers, and developers on tight budgets, leveling the playing field between
the wealthiest and the scrappiest.
.
Clod implements a capability-based security model to ensure safe AI interactions
with the file system, and uses checksum-based file tracking with XXH3 hashes
for detecting modified or renamed files. It uses libmagic for robust, content-based
file type detection.
.
META NOTE: This project represents a milestone in human-AI collaboration, with Claude
(the AI assistant from Anthropic) writing 99.9% of the code based on guidance from Fuzz
Leonard. The result demonstrates how powerful AI tools are best created through
collaborative approaches where humans and AI systems leverage their respective strengths.
license: MIT
license-file: LICENSE
author: Fuzz Leonard
maintainer: ink@fuzz.ink
homepage: https://github.com/fuzz/clod
bug-reports: https://github.com/fuzz/clod/issues
category: Development
build-type: Simple
extra-source-files:
README.md
HUMAN.md
CRITICAL.md
SPEC.md
guardrails.md
project-instructions.md
LICENSE
resources/default_clodignore.dhall
resources/binary_signatures.dhall
resources/file_types.dhall
resources/text_patterns.dhall
bin/release
bin/install-man-pages.sh
man/clod.1.md
man/clod.7.md
man/clod.8.md
extra-doc-files:
CHANGELOG.md
source-repository head
type: git
location: https://github.com/fuzz/clod
common deps
build-depends:
base >= 4.7 && < 5,
directory >= 1.3 && < 1.5,
filepath >= 1.4 && < 1.6,
process >= 1.6 && < 1.7,
text >= 1.2 && < 2.2,
bytestring >= 0.10 && < 0.13,
containers >= 0.6 && < 0.7,
time >= 1.9 && < 1.13,
hashable >= 1.3 && < 1.6
common extensions
default-extensions:
OverloadedStrings
TypeOperators
FlexibleContexts
GADTs
DataKinds
ScopedTypeVariables
TypeApplications
RecordWildCards
library
import: deps, extensions
hs-source-dirs: src
exposed-modules:
Clod.Core
Clod.Config
Clod.FileSystem
Clod.FileSystem.Detection
Clod.FileSystem.Operations
Clod.FileSystem.Processing
Clod.FileSystem.Transformations
Clod.FileSystem.Checksums
Clod.IgnorePatterns
Clod.Output
Clod.Types
Clod.Effects
Clod.Capability
Clod.AdvancedCapability
other-modules: Paths_clod
autogen-modules: Paths_clod
build-depends:
aeson >= 2.0 && < 3.0,
aeson-pretty >= 0.8 && < 0.9,
dhall >= 1.41 && < 1.44,
temporary >= 1.3 && < 1.4,
mtl >= 2.2 && < 2.4,
transformers >= 0.5 && < 0.7,
unix >= 2.7 && < 2.9,
xxhash-ffi >= 0.3 && < 0.4,
base16-bytestring >= 1.0 && < 1.1,
magic >= 1.1 && < 1.2,
prettyprinter >= 1.7 && < 1.8,
file-embed >= 0.0.15 && < 0.1
default-language: Haskell2010
default-extensions: TemplateHaskell
LambdaCase
ghc-options: -Wall
executable clod
import: deps, extensions
hs-source-dirs: app
main-is: Main.hs
build-depends:
clod,
aeson >= 2.0 && < 3.0,
optparse-applicative >= 0.16 && < 0.18
default-language: Haskell2010
ghc-options: -Wall -threaded -rtsopts -with-rtsopts=-N
test-suite clod-test
import: deps, extensions
type: exitcode-stdio-1.0
hs-source-dirs: test
main-is: Spec.hs
other-modules:
Clod.IgnorePatternsSpec
Clod.FileSystemSpec
Clod.CoreSpec
Clod.ConfigSpec
Clod.OutputSpec
Clod.MainSpec
Clod.FileSystem.DetectionSpec
Clod.FileSystem.ChecksumsSpec
Clod.FileSystem.DatabaseSpec
Clod.CapabilitySpec
Clod.AdvancedCapabilitySpec
Clod.EffectsSpec
Clod.TypesSpec
Clod.FileSystem.OperationsSpec
Clod.FileSystem.ProcessingSpec
Clod.FileSystem.TransformationsSpec
Clod.ManPagesSpec
Clod.TestHelpers
build-depends:
clod,
temporary >= 1.3 && < 1.4,
unix >= 2.7 && < 2.9,
optparse-applicative >= 0.16 && < 0.18,
hspec >= 2.8 && < 2.12,
QuickCheck >= 2.14 && < 2.16,
random >= 1.2 && < 1.4,
mtl >= 2.2 && < 2.4
default-language: Haskell2010
ghc-options: -Wall -threaded -rtsopts -with-rtsopts=-N
executable magictest
hs-source-dirs: test
main-is: MagicTest.hs
build-depends:
base >= 4.7 && < 5,
magic >= 1.1 && < 1.2,
directory >= 1.3 && < 1.5
default-language: Haskell2010
default-extensions: OverloadedStrings
ghc-options: -Wall -threaded -rtsopts -with-rtsopts=-N